00.简述工厂设计模式

00.简述工厂设计模式_第1张图片

00.简述工厂设计模式_第2张图片

00.简述工厂设计模式_第3张图片

这里简单理解:简单工厂又叫静态工厂;是将工厂方法的方法体加上static

 

00.简述工厂设计模式_第4张图片

 

问题来了,什么是开闭原则?又有哪些设计原则呢?

开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类

面向对象设计(Object-Oriented Design,OOD

(此处先了解下,随着知识的深入在进行学习)

单一职责:

开闭原则:对扩展开放,对修改关闭

依赖倒置:多用多态,面向接口/抽象编程;是开闭原则的基础,具体内容:针对接口编程,依赖于抽象而不依赖于具体。

里氏替换法则:是对"开-闭"原则的补充。实现"开-闭"原则的关键步骤就是抽象化;任何基类可以出现的地方,子类一定可以出现

接口隔离:使用多个隔离的接口,比使用单个接口要好。还是一个降低类之间的耦合度的意思,从这儿我们看出,其实设计模式就是一个软件的设计思想,从大型软件架构出发,为了升级和维护方便。所以上文中多次出现:降低依赖,降低耦合。

迪米特法则(最少知道原则):为什么叫最少知道原则,就是说:一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。

 

注意:FactoryBean和BeanFactory是有区别的;前者是工厂实体类,后者是实体类的工厂

00.简述工厂设计模式_第5张图片

开闭原则:对扩展开放,对修改关闭

此时再去加一个新的动物Monkey就需要修改工厂源代码

 

在该网站来画类图加深理解;或者用StarUML软件

00.简述工厂设计模式_第6张图片

00.简述工厂设计模式_第7张图片

00.简述工厂设计模式_第8张图片

1.工厂方法:

00.简述工厂设计模式_第9张图片

00.简述工厂设计模式_第10张图片

首先创建抽象产品

00.简述工厂设计模式_第11张图片

然后创建具体的产品

00.简述工厂设计模式_第12张图片

00.简述工厂设计模式_第13张图片

定义抽象工厂

定义具体工厂:方式一,不推荐,但是写法简单

00.简述工厂设计模式_第14张图片

00.简述工厂设计模式_第15张图片

定义具体工厂:方式二,推荐,但是代码复杂点

00.简述工厂设计模式_第16张图片

00.简述工厂设计模式_第17张图片

调用具体工厂

00.简述工厂设计模式_第18张图片

 

00.简述工厂设计模式_第19张图片

 

00.简述工厂设计模式_第20张图片

 

修改为简单工厂simplefactory,简单工厂又称静态工厂.将工厂里的方法改为static

00.简述工厂设计模式_第21张图片

00.简述工厂设计模式_第22张图片

00.简述工厂设计模式_第23张图片

00.简述工厂设计模式_第24张图片

 

00.简述工厂设计模式_第25张图片

00.简述工厂设计模式_第26张图片

00.简述工厂设计模式_第27张图片

基于简单工厂开始改写:

00.简述工厂设计模式_第28张图片

00.简述工厂设计模式_第29张图片

00.简述工厂设计模式_第30张图片

 

00.简述工厂设计模式_第31张图片

00.简述工厂设计模式_第32张图片

00.简述工厂设计模式_第33张图片

00.简述工厂设计模式_第34张图片

第一步:创建抽象类产品/接口

00.简述工厂设计模式_第35张图片

第二步:创建具体产品

00.简述工厂设计模式_第36张图片

00.简述工厂设计模式_第37张图片00.简述工厂设计模式_第38张图片

 

第三步:定义抽象工厂

00.简述工厂设计模式_第39张图片

00.简述工厂设计模式_第40张图片00.简述工厂设计模式_第41张图片

第四步:调用具体工厂

00.简述工厂设计模式_第42张图片00.简述工厂设计模式_第43张图片

 

00.简述工厂设计模式_第44张图片

00.简述工厂设计模式_第45张图片

 

第一步:创建抽象产品/接口

第二步:创建具体产品

00.简述工厂设计模式_第46张图片

第三步:定义抽象工厂(抽象工厂方法还有对工厂进行抽象)

第四步:调用具体工厂

 

代码演示:

解释:接口可以多继承;类是单继承类,多实现接口

00.简述工厂设计模式_第47张图片宝马抽象类没有重写完接口的方法,通过子类来完成额外功能得附加,减少了代码的变动

00.简述工厂设计模式_第48张图片

00.简述工厂设计模式_第49张图片对高配和低配工厂的抽象;这也是抽象工厂方法的核心

00.简述工厂设计模式_第50张图片

00.简述工厂设计模式_第51张图片

00.简述工厂设计模式_第52张图片

 

 

你可能感兴趣的:(00.简述工厂设计模式)