黑马程序员---设计模式之工厂模式
来源:互联网 发布:pos机软件 编辑:程序博客网 时间:2024/06/05 08:37
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
最近报了黑马,开始要写博客了。因为很早之前学习过了java,再去重新学习就没多大了心情了 ,刚好最近学习设计模式,干脆就以此作为技术博客了。
注:还是菜鸟一只,对于设计模式的理解还是很肤浅,而对于使用场合及优缺点更是没有发言权了,所有这系里的博客只是作为学习日记,留个印象。
简单工厂模式
类图
工厂类代码
public class OperationFactory { public Operation createOperation(String oper) { Operation operation=null; switch(oper) { case "+": operation=new OperationAdd(); break; case "-": operation=new OperationSub(); break; } return operation; }}
优点
简单工厂最大的优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择动态的实例化相关的类,对于客户端来说,去除了具体的依赖。
缺点
由于工厂类集中了所有实例的创建逻辑,违反了高内聚责任分配原则,将全部创建逻辑集中到了一个工厂类中;它所能创建的类只能是事先考虑到的,如果需要添加新的类,则就需要改变工厂类了。
使用场景
工厂类负责创建的对象比较少;
客户只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心;
由于简单工厂很容易违反高内聚责任分配原则,因此一般只在很简单的情况下应用。
工厂方法模式
类图
工厂接口代码
public interface OperationFactory {public Operation createOperation();}工厂实现类代码
public class AddFactory implements OperationFactory {@Overridepublic Operation createOperation() {return new OperationAdd();}}public class SubFactory implements OperationFactory { @Override public Operation createOperation() { return new OperationSub(); }}。。。。客户端调用
public class Test {public static void main(String[] args) {OperationFactory factory=new SubFactory();Operation operation = factory.createOperation();operation.getResult();}}
优点
工厂方法模式是简单工厂模式的进一步抽象和推广。由于使用了多肽性,工厂方法模式保持了简单工厂的优点,克服了它的缺点。
缺点
在每加一个产品之前,都要增加一个产品的工厂类,增加了额外的开发量
抽象工厂模式
类图
优点
便于交互产品系列,具体的工程类在一个应用中只在初始化的时候出现一次,这就使得改变一个应用的具体工厂变得简单,他只需要改变具体工厂即可使用不同的产品
它还让具体的创建实例的过程与客户端分离,客户端通过抽象的接口操作实例,产品的具体类别也被具体工厂实习分离
缺点
在增加新产品是时,增加和要改动的类太多
0 0
- 黑马程序员---设计模式之工厂模式
- 《黑马程序员》 接口之工厂设计模式
- 黑马程序员---工厂设计模式
- 黑马程序员-设计模式之简单工厂模式(引入)
- 黑马程序员-设计模式-工厂模式
- 黑马程序员_JAVA设计模式之简单工厂
- 黑马程序员——Java设计模式之工厂系列
- 黑马程序员 java 设计模式之 工厂方法
- 黑马程序员:单例,工厂设计模式
- 《黑马程序员》 工厂设计模式深入分析
- 黑马程序员-工厂模式
- 黑马程序员_.Net设计模式之简单工厂设计模式
- 黑马程序员:初识设计模式,简单工厂模式的计算器
- 黑马程序员-简单工厂模式,工厂模式
- 黑马程序员_工厂模式
- 黑马程序员-抽象工厂模式
- 黑马程序员-工厂模式总结
- 黑马程序员:设计模式
- Android网络编程专栏--Http协议详细解析
- 自定义ActionBar盘点---------RefreshActionItem
- SDWebImage基本使用
- 层序遍历二叉树,以及拓展问题,同层同行输出
- 兔子--android自动化框架及其特点
- 黑马程序员---设计模式之工厂模式
- 【机器学习中的数学】比例混合分布
- 工作杂谈:产品经理与项目经理
- 普林斯顿算法课第三周作业
- CentOS 7.0 + JBOSS 7.1.1 相关命令行
- JSP--JSP语法
- Managing Bitmap Memory
- wget 详细介绍
- 轮子----文本框内容不是唯一返回