工厂方法模式
来源:互联网 发布:淘宝退货售后卡填什么 编辑:程序博客网 时间:2024/06/06 22:53
自己整合的关于工厂方法模式的理解
1. 简单工厂模式
先上图:
这里,我创建了3个手机类,去实现了一个包含有打电话功能的手机接口,又写了一个Phone的工厂方法,它有一个静态的方法,可以根据不同的传入参数,实例化出不同类型的手机。
优点:工厂类是整个模式的关键所在。它包含必要的判断逻辑,能够根据外界给定的信息,决定究竟应该创建哪个具体类的对象。用户在使用时可以直接根据工厂类去创建所需的实例,而无需了解这些对象是如何创建以及如何组织的。有利于整个软件体系结构的优化。
缺点:由于工厂类集中了所有实例的创建逻辑,这就直接导致一旦这个工厂出了问题,所有的客户端都会受到牵连。而且更重要的是,简单工厂模式违背了“开放封闭原则”,就是违背了“系统对扩展开放,对修改封闭”的原则,因为当我新增加一个手机产品的时候必须修改手机工厂类,相应的工厂类就需要重新编译一遍。
2. 工厂方法模式
上图:
这里是一个手机接口类,实现了4种类型的手机模型,同时还有一个工厂接口类,实现了各个手机模型的工厂方法,当如要使用的时候:
public class Client { public static void main(String[] args) { PhoneFactory phoneFactory = new IphoneFactory(); Phone phone = phoneFactory.createPhone(); phone.callPhone(); phoneFactory = new NOKIAFactory(); phone = phoneFactory.createPhone(); phone.callPhone(); phoneFactory = new SamsungFactory(); phone = phoneFactory.createPhone(); phone.callPhone(); }}当需要增加一款手机产品,如(xiaomi),只需要添加一个继承Phone接口的XiaoMi类和一个继承PhoneFactory的XiaoMiFactory,然后在client里面就可以直接使用了,完全不用去修改Factory里面的代码。完全符合开放封闭原则。
1 0
- 工厂模式 -- 工厂方法
- 工厂模式-工厂方法
- 工厂模式-工厂方法
- 工厂 > 工厂方法模式
- 工厂模式-工厂方法模式
- 工厂模式-工厂方法模式
- 工厂模式---工厂方法模式
- 【模式】工厂方法模式
- 工厂方法,抽象工厂模式
- C#工厂模式-工厂方法
- 工厂模式 和工厂方法
- 工厂模式-C-工厂方法
- 工厂模式以及工厂方法
- 简单工厂、工厂方法、抽象工厂模式
- 简单工厂、工厂方法、抽象工厂模式
- 工厂模式(简单工厂、工厂方法)
- 简单工厂|工厂方法|抽象工厂模式
- 设计模式-工厂模式(简单工厂模式+工厂方法模式)
- 华为服务器故障后的标准动作
- hdu5532 Almost Sorted Array(LIS)
- BZOJ1047: [HAOI2007]理想的正方形 单调队列
- 用maven打包dubbo项目并部署到云平台
- 子串判断
- 工厂方法模式
- Eclipse一直Building Workspace
- java中的构造函数
- Error:Execution failed for task ':app:clean'. > Unable to delete directory:......
- tomcat热部署配置
- 事务
- AOP应用——事务管理
- div 移动
- 已知需要找给顾客的零钱金额为N,当前钱币的面值种类为1,9,10三种,求找给顾客尽量少的钱币数的找零方法,给出程序算法设计思路