二、工厂方法
来源:互联网 发布:淘宝弹幕代码 编辑:程序博客网 时间:2024/05/30 23:00
1.简介定义
模式简介
创建型设计模式,核心角色有四种
- 抽象工厂
- 具体工厂(实现抽象工厂)
- 抽象产品
- 具体产品(实现抽象产品)
定义
定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。(百度百科)
类图
2.代码实现
抽象产品
public interface IProduct { void start(); void stop();}
具体产品
public class ProductType1 implements IProduct { @Override public void start() { System.out.println("product one... start"); } @Override public void stop() { System.out.println("product one... stop"); }}public class ProductType2 implements IProduct { @Override public void start() { System.out.println("product two start***"); } @Override public void stop() { System.out.println("product two stop***"); }}
抽象工厂
public interface IFactory { IProduct createProduct();}
具体工厂
public class FactoryType1 implements IFactory { @Override public IProduct createProduct() { return new ProductType1(); }}public class FactoryType2 implements IFactory { @Override public IProduct createProduct() { return new ProductType2(); }}
客户端调用
public class ClientTest { public static void main(String[] args) { IFactory iFactory = new FactoryType1(); IProduct iProduct = iFactory.createProduct(); iProduct.start(); iProduct.stop(); iFactory = new FactoryType2(); iProduct = iFactory.createProduct(); iProduct.start(); iProduct.stop(); }}
3.总结
- 工厂方法是简单工厂方法的延伸,解决了简单工厂方法不符合开闭原则的问题,实现了对扩展开放。
- 区别于简单工厂模式,对工厂进行抽象,工厂类(具体)和产品类(具体)可以依次对应。具体的工厂去生产具体的对应的产品。
- 缺点如果产品类巨多,就会产生巨多的工厂类,增加系统的复杂性。
阅读全文
0 0
- 二、工厂方法模式
- (二)工厂方法模式
- 二 工厂方法模式
- 二、工厂方法模式
- (二)工厂方法
- 二、工厂方法
- 工厂模式(二)--工厂方法模式
- 工厂模式二 工厂方法模式
- [设计模式](二):工厂模式(简单工厂|静态工程、工厂方法|多工厂、抽象工厂)
- 工厂方法模式(二):工厂方法模式概述
- 工厂模式(简单工厂模式, 工厂方法模式, 抽象工厂模式)二
- 设计模式学习(二)之工厂模式(简单工厂+工厂方法+抽象工厂)
- 工厂三兄弟之工厂方法模式(二)
- 工厂三兄弟之工厂方法模式(二)
- Java设计模式(二):工厂模式(Factory)之工厂方法
- 设计模式培训之二:简单工厂、工厂方法
- 设计模式培训之二:简单工厂、工厂方法
- 二,工厂模式——工厂方法模式
- 小程序源代码加密,加密小程序源码方法
- 是周末啊
- Structure 与 Union 比较?
- JAVA中使用FTPClient上传下载
- 【除留余数法定义hash函数+平方探测法解决hash冲突】数据结构实验之查找五:平方之哈希表
- 二、工厂方法
- Fidder实战之模拟http[s]请求
- 7-32 单词长度(15 分)
- 简单的贪食蛇
- react基础安装与使用
- Unix-linux编程实践教程
- Lucene全文检索技术基础学习
- python自定义函数和类并调用
- Softmax损失函数