码农小汪-设计模式-工厂方法模式 每一产品都有一个具体的实现工厂
来源:互联网 发布:梅甘娜rs 知乎 编辑:程序博客网 时间:2024/05/29 19:01
之前的简单工厂模式,我们不是觉得没有满足开闭原则?
这个就是我们工厂方法的意义!
抽象工厂角色: 工厂角色必须实现的接口或者必须继承的父类。这个每人具体的产品对应一个工厂的实现类。
具体工厂角色:它含有和具体业务逻辑有关的代码,对应一个产品
抽象产品角色:它是具体产品继承的父类或者是实现的接口。
具体产品角色:具体工厂角色所创建的对象就是此角色的实例
这个和我们之前的图像没得区别吧
看图!其实都是差不多的
我们的汽车。抽象的汽车,和具体的实现类!
抽象产品 abstract class Car{ private String name; public abstract void drive(); public String getName() { return name; } public void setName(String name) { this.name = name; } } //具体产品 class Benz extends Car{ public void drive(){ System.out.println(this.getName()+"----go-----------------------"); } } class Bmw extends Car{ public void drive(){ System.out.println(this.getName()+"----go-----------------------"); } }
工厂类,一个汽车对应一个实现的工厂
//抽象工厂 abstract class Driver{ public abstract Car createCar(String car) throws Exception; } //具体工厂(每个具体工厂负责一个具体产品) class BenzDriver extends Driver{ public Car createCar(String car) throws Exception { return new Benz(); } } class BmwDriver extends Driver{ public Car createCar(String car) throws Exception { return new Bmw(); } }
Driver d = new BenzDriver(); 工厂实现类,产生汽车哦,下面 Car c = d.createCar("benz"); c.setName("benz"); c.drive();
每当我们创建一个具体的产品的时候,都有对应与之实现的工厂类。这样的话我们就满足的开闭原则,可扩展性比较的好。慢慢的学习哦,我也会慢慢的理解这些东西。多看几次就好了。以前不懂,看过几变我相信就会慢慢的理解这些东西啦。
我们和之前的工厂模式一样的,也是对于客服端隐藏了具体的实现类。你懂得哦~
0 0
- 码农小汪-设计模式-工厂方法模式 每一产品都有一个具体的实现工厂
- 一天一个设计模式---工厂方法模式
- 设计模式 工厂方法模式 C++实现
- 设计模式-工厂方法模式 C++实现
- 设计模式-工厂模式(简单工厂模式+工厂方法模式)
- 设计模式的实现(C++)------工厂方法模式(FactoryMethod)
- GOF23设计模式之工厂方法模式的实现
- 设计模式之工厂方法模式的简单实现
- 设计模式-工厂模式(简单工厂,工厂方法,抽象工厂)
- 设计模式C++实现-简单工厂模式、工厂方法模式、抽象工厂模式
- 设计模式--工厂方法
- 工厂方法设计模式
- 设计模式-工厂方法
- 【设计模式】【工厂方法】
- 设计模式 - 工厂方法
- 工厂方法设计模式
- 工厂方法设计模式
- 【设计模式】工厂方法
- 一键清除SD卡数据
- 逆置/反转单链表(C语言)
- VPN网络访问问题
- Leetcode(59)-Count Primes
- 利用STL的set可以使查询效率变高(2016.4浙江科技学院校赛)
- 码农小汪-设计模式-工厂方法模式 每一产品都有一个具体的实现工厂
- 【GDOI2016模拟3.9】暴走的图灵机
- Android滑动(二)——滑动方法之layout() 及相应封装API
- 友盟自动更新产品介绍
- iOS 隐藏多余的cell
- ListView的使用(一)
- ActiveX控件 姿态仪 高度仪 水平仪...
- Expander
- JS Base64 3Des加密解密(荐)