设计模式之工厂方法模式
来源:互联网 发布:ai2017汉化包for mac 编辑:程序博客网 时间:2024/06/06 13:18
工厂模式是设计模式中创建者模式非常重要的一种,一般有工厂模式,工厂方法模式,抽象工厂模式。这次主要谈一下工厂方法模式。
接口就是定义规则,抽象类就是定义部分的规则,具体类就是干活的,关于模式的理想原则就是面向对象几大原则
开闭,里氏代换,依赖倒置,迪米特(最小知识),接口隔离,合成复用。
- 工厂方法模式
定义一个抽象的工厂客户端用以声明引用,具体工厂类实现抽象工厂完成产品实例化。定义产品接口,里面包含产品的行为和属性,定义具体产品实现类。
包含四个对象:抽象工厂,具体工厂,抽象产品,具体产品。
关系如图:
代码示例:
public class FactoryMethod { public static void main(String[] args) { // 实例化具体工厂 ComputerFactory computerFactory = new DellComputerFactory(); computerFactory.function().work(); // 引用指向新的工厂 computerFactory = new ASUSComputerFactory(); computerFactory.function().work(); }}// 工厂接口interface ComputerFactory { Computer function();}// 实现工厂class DellComputerFactory implements ComputerFactory { @Override public Computer function() { return new DellComputer(); }}// 实现工厂class ASUSComputerFactory implements ComputerFactory { @Override public Computer function() { return new ASUSComputer(); }}// 抽象产品接口interface Computer { void work();}// 实现产品class DellComputer implements Computer{ public void work(){ System.out.println("i am dell computer , i am work!"); }}// 实现产品class ASUSComputer implements Computer{ public void work(){ System.out.println("i am ASUS computer, i am work!"); }}
运行结果:
i am dell computer , i am work!
i am ASUS computer, i am work!
- 各角色
抽象工厂接口:负责定义创建规则,该接口里的方法返回的产品,在客户端调用的时候将类的实例化延迟到了实现工厂当中去。
工厂实现类:完成产品的实例化,这里可以完成很多类的组装成产品,客户端直接调用方法,这里也降低了耦合性。
产品接口:定义产品的规则。
产品实现类:完成产品具体的方法。
工厂方法模式优点是可以降低系统的耦合度和增加了系统的扩展性,但是增加了设计的复杂性。
0 0
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式 之 工厂方法
- 设计模式 之 工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 《设计模式》之工厂方法
- 设计模式之--工厂方法
- yum insatll记录
- MongoDB中的null 和not null
- highCharts之后又发现ECharts
- Android源码编译环境搭建
- 8VC Venture Cup 2016 -D - Jerry's Protest- 预处理/前缀和/概率计算
- 设计模式之工厂方法模式
- Java-day07网络编程
- 析构函数 数组 示例
- java synchronized详解
- 关于hive数据导入方式的总结
- submile-snippet 自定义代码片段
- MFC中的数据库访问
- Ionic基础——ion-tap选项卡及路由结合ion-tap详解
- diskpart