《设计模式 系列》- 创建型模式 - 工厂方法
2017-12-20 00:00
357 查看
前言
本文包含几部分:1.UML图
2.实现代码
3.模式分析
一、UML图
二、实现代码
产品类public interface Product { public void printProduct(); } public class ConcreteProductA implements Product { @Override public void printProduct() { System.out.println("This is ConcreteProductA"); } } public class ConcreteProductB implements Product { @Override public void printProduct() { System.out.println("This is ConcreteProductB"); } }
工厂类
public abstract class Creater { public abstract Product factoryMethod(String type); public abstract void anOperation(); } public class ConcreteCreator extends Creater { @Override public Product factoryMethod(String type) { Product product = null; if (type.equals("A")) { product = new ConcreteProductA(); } else { product = new ConcreteProductB(); } return product; } @Override public void anOperation() { // TODO Auto-generated method stub } }
调用程序类
public class Client { public void buy(Product p) { p.printProduct(); } public static void main(String[] args) { Client client = new Client(); ConcreteCreator factory = new ConcreteCreator(); Product product = factory.factoryMethod("A"); client.buy(product); } }
三、模式分析
工厂方法模式组成:工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑,用来创建产品
抽象产品角色:它一般是具体产品继承的父类或者实现的接口。
具体产品角色:工厂类所创建的对象就是此角色的实例。
缺点:每增加一个产品,就要修改工厂类代码,违反了开闭原则
相关文章推荐
- 设计模式系列9---和而不同的工厂方法模式
- 从FLC中学习的设计模式系列-创建型模式(3)-工厂方法
- 设计模式-创建型模式:工厂方法FactoryMethod
- 设计模式系列一创建型模式之(简单工厂VS工厂方法)
- 设计模式(三):创建型模式—Factory Method(工厂方法)
- 《设计模式 系列》- 创建型模式 - 抽象工厂
- [创建型模式系列]simple factory & factory method 简单工厂类和工厂方法类的概念及区别
- [设计模式学习笔记二][创建型模式][工厂方法(Factory Method)]
- 设计模式系列一创建型之(单件模式)
- Golang设计模式-创建型-工厂方法
- C#面向对象设计模式纵横谈(四) --- Factory Method 工厂方法(创建型模式)
- 设计模式(一)工厂模式Factory(创建型)
- (第Ⅱ部分 创建型模式篇) 第4章 工厂方法(Factory Method)
- 创建型模式-工厂方法
- 设计模式系列(二)工厂模式
- 设计模式-创建型模式-工厂方法
- 创建型模式-工厂方法 Creational Patterns-Factory Method
- 【创建型设计模式】-简单工厂方法设计模式
- 设计模式系列 - 模板方法模式
- Android设计模式系列(8)--SDK源码之工厂方法模式