1、简单工厂模式: 通过注入条件使用if语句创建相同接口下的对象,并返回对象供调用者使用
2、策略模式:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。
减少了客户端与算法的耦合成都,让客户端只认识策略Context 即可
c策略模式着重于对象的使用
工厂模式着重于对象的创建
策略模式着重于在客户端判断对象的使用,将对象交给服务端使用
工厂模式着重于在服务端判断对象的使用,返回对象给客户端
策略模式和简单工厂模式看起来非常相似,都是通过多态来实现不同子类的选取,这种思想应该是从程序的整体来看得出的。如果从使用这两种模式的角度来看的话,我们会发现在简单工厂模式中我们只需要传递相应的条件就能得到想要的一个对象,然后通过这个对象实现算法的操作。而策略模式,使用时必须首先创建一个想使用的类对象,然后将该对象最为参数传递进去,通过该对象调用不同的算法。在简单工厂模式中实现了通过条件选取一个类去实例化对象,策略模式则将选取相应对象的工作交给模式的使用者,它本身不去做选取工作。
不同点 | 简单工厂模式 | 策略模式 |
作用 | 用来创建对象 | 表示可替换的算法 |
模式类别 | 创建型模式 | 行为型模式 |
适应范围 | 适应对象的变化 | 适应行为的变化 |
关注点 | 对象创建 | 行为选择 |
实例化的过程进行了延后 | 更多的是依赖倒置之类的东西 | |
工厂模式封装对象,实例化对象后调用的时候要知道具体的方法 | 调用的时候必须先指定实例化具体的类,再调用抽象的方法 | |
生成型的模式,在你需要的时候构建具体的实例. | 生成型的模式,在你需要的时候构建具体的实例. | |
从客户端看耦合性 | 简单工厂是把父类直接摆在客户端 | 将父类隐藏在类Context里面,这样封装得更好一点。更低 |
3、单一职责原则:一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因
4、开放封闭原则:对修改封闭,对扩展开放
5、依赖倒置原则:
6、装饰模式:
7、代理模式:代理类和被代理类实现共同基类,代理类封装被代理对象,对被代理兑现的各个方法进行封装调用。对外被代理对象不在公开,应该公开代理类
8、工厂方法模式:工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象,即通过不同的工厂子类来创建不同的产品对象(相当于尼古拉斯之分拉斯)
9、原型模式:
10、模板方法模式:
11、迪米特法则:一个软件实体应当尽可能少地与其他实体发生相互作用。那么当其中某一个模块发生修改时,就会尽量少地影响其他模块,扩展会相对容易,这是对软件实体之间通信的限制,迪米特法则要求限制软件实体之间通信的宽度和深度
12、外观模式:
13、建造者模式:
14、观察值模式:又叫订阅-发布模式。定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。示例:委托
15、抽象工厂模式:提供一个创建一系列相关或者相互依赖对象的接口,不指定他们具体的实现类。
client决定使用哪个抽象工厂和哪个抽象产品的实现
与工厂方法相比,工厂思路基本不变,工厂内部的实现依赖 产品的抽象(接口),而不在依赖具体实现类
比如:喝可乐(抽象产品) 可乐工厂(抽象工厂)生产可乐,可口可乐工厂生(工厂实现)产了可口可乐(产品实现)
比如:生产可乐(抽象产品) 可乐工厂生产可乐瓶子(抽象产品)、生产可以饮料(抽象产品)、生产包装纸(抽象产品)
百事可乐工厂生产了百事可乐饮料(实现)、百事可乐瓶子(实现)、百事可乐包装纸(实现)
可口可乐同理
所以我要喝可乐(client),你要找到一个可乐工厂(依赖注入:可口可乐 具体工厂),让工厂生产可乐(工厂生产可乐,管他怎么生产呢,好喝就行)
16、状态模式:
17、适配器模式:类似于代理模式,把对象方法封装成client需要的端口
18、备忘录模式:
19、组合模式:
20、迭代器模式:
21、单例模式:通过构造函数私有化,使用公开的方法对内部静态对象的限制实例化
22、桥接模式:
23、命令模式:
24、职责链模式:为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。参考netcore 请求处理RequestDelegete 管道模式
25、中戒者模式:
26、亨元模式:
27、解释器模式:
28、访问者模式:
29、接口隔离原则:
本文链接:https://blog.nnwk.net/article/65
有问题请留言。版权所有,转载请在显眼位置处保留文章出处,并留下原文连接
Leave your question and I'll get back to you as soon as I see it. All rights reserved. Please keep the source and links
友情链接:
子卿全栈
全部评论