在前面的简单工厂模式中,通常将每个类、接口定义到不同的文件中。在面向对象开发思想中有一个重要的原则就是封装变化点,在实际操作过程中, 通常被调用方的代码不要去更改,而是增加,这是面向对象的开闭原则。在简单工厂模式中存在一个问题,就是简单工厂类需要知道不同具体类的实现,如果现在多了一种算法比如乘法, ...
分类:
其他好文 时间:
2017-09-27 20:58:00
阅读次数:
130
在TypeScript中,要调用功能,通常在调用方通过实例化被调用方对象来调用相关方法,但这种实现在调用方和被调用方形成了强耦合的关系。 另外如果被调用方有种实现,在调用方需要根据场景去实例化不同的类,造成代码有一定的重复性,而且不够灵活。 简单工厂模式是在调用方与被调用方之间引入了一个工厂类,由这 ...
分类:
其他好文 时间:
2017-09-27 18:56:26
阅读次数:
111
1 简单工厂模式的缺陷? 简单工厂模式的工厂加入逻辑判断逻辑,当要增加新的具体工厂时,需要修改代码。这违背了“开放-封边”原则。 2 工厂模式? 工厂模式为每一个具体类都设计一个工厂,这样可以改掉简单工厂的弊端。 3 工厂模式的缺陷? 每增加一个产品就需要增加一个产品的工厂类,增加了额外的开发量 ...
分类:
其他好文 时间:
2017-09-26 17:52:40
阅读次数:
136
1 抽象工厂? 抽象工厂用在既有产品树,又有产品族的场合。 产品树:奔驰旗下的跑车和商务车构成产品树 产品族:奔驰旗下的跑车与奥迪旗下的跑车构成产品族。/*缺点:此时如果需要增加一个红旗厂家的车,需要改的地方很多。1 定义红旗抽象类,具体类;2 Factory接口增加生产红旗的工厂;3 跑车工厂和商 ...
分类:
其他好文 时间:
2017-09-26 17:47:33
阅读次数:
113
一、引言 写了3篇有关设计模式的文章了,大家有了些反馈,说能从中学到一些东西,我感到很欣慰,那就继续努力。今天我要写第四个模式了,该模式叫抽象工厂。上一篇文章我们讲了【工厂方法】模式,它是为了解决【简单工厂】模式所面对的问题,它的问题就是:如果我们增加新的产品,工厂类的方法就要修改本身的代码,增加产 ...
设计模式(一)——简单工厂模式一、简单工厂模式简介1、简单工厂模式简介简单工厂模式(SimpleFactoryPattern)属于创建型模式,又称静态工厂方法(StaticFactoryMethod)模式,是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单工厂模式..
分类:
其他好文 时间:
2017-09-26 09:29:55
阅读次数:
243
说明: 1、client只会找到ComputerEngineer,并告诉他用哪个cpu和那个mainboard 2、computerEngineer只会从cpuFactory和mainboardFactory分别获得cpu和mainboard,并分别告诉它们的cpu型号、mainboard型号 3、... ...
分类:
其他好文 时间:
2017-09-25 23:56:47
阅读次数:
230
1 单一职责原则: 单一职责就是发现软件设计中的不同职责,并把这些职责相互分离。 2 开放-封闭原则: 是说软件实体(比如类,函数)应该可以扩展,但是不可修改。意思是,在不影响其他功能代码块功能的前提下,课增加代码。比如简单工厂设计中http://www.cnblogs.com/buptzlb/p/ ...
分类:
其他好文 时间:
2017-09-25 21:59:45
阅读次数:
131
1 设计模式中经常用到程序设计中的封装,继承,多态的思想。不同的设计模式使代码更加灵活,容易扩展。 2 设计模式中一般都会存在父类的概念,父类一般是抽象类,内部维护的变量,用于子类继承;维护的抽象方法,用于子类去具体实现。 3 对于一个方案的模式设计,要首先抽象出父类,想出父类中要维护哪些子类都要用 ...
分类:
其他好文 时间:
2017-09-25 20:42:57
阅读次数:
144
案例:计算器程序的编写 第一种: import java.util.Scanner; public class Operation { public static void main(String[] args) { Scanner input = new Scanner(System.in); S ...
分类:
其他好文 时间:
2017-09-25 14:45:26
阅读次数:
196