23种设计模式相关文章

结构型模式

1、Decorator装饰器模式

总结:
在不修改原方法的情况下,对其扩展功能。动态的赋予其功能。

2、Bridge桥接模式

总结:
将实现与抽象分离。使其实现能够在不同维度进行灵活变化。如同一个功能在不同的平台实现不同。则可以采用桥接模式。一般用于项目的设计阶段。

3、Adapter适配器模式

总结:
一般用于旧项目的改造。比如以前定义的老接口实现不好用,现在发现了一个更好用的第三方库,但是未实现老接口,所以用不了,这个时候就可以用适配器模式,新建一个类来实现老接口,但是内部实现还是调用的第三方类。就是再套一层。以达到兼容老接口的目的
相比于桥接模式。适配器模式更加具体(用某个具体的对象来实现新的接口)。而桥接模式只是对抽象的不同实现。

4、Composite组合模式

总结:
简单对象和复杂对象实现同一套接口。使得客户的调用变得简单。
ps:透明式组合模式在面对需求变化时(如叶子变成了枝干),处理起来比较灵活。

5、Proxy代理模式

总结:
动态代理:C#之动态代理的实现
应用场景:aop

创建型模式

1、Builder建造者模式

总结:
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

2、Flyweight享元模式

总结:
复用对象。将内部状态和外部状态分离。
如缓存、字符串驻留池、线程池

3、Factory工厂模式

工厂方法模式
抽象工厂模式
总结:
延迟实例的创建到子类中。

4、Prototype原型模式

总结:
快速复制一个对象。而不是使用New。
浅拷贝或者深拷贝

5、Singleton单例模式

扩展:
静态变量何时初始化

行为模式

1、Observer观察者模式

总结:
类似C#中的事件、发布订阅
一对多

2、Command命令模式

总结:
命令模式是对命令的封装(把方法封装成对象)。命令模式把发出命令的责任和执行命令的责任分割开,委派给不同的对象。
就像键盘上的每一个按键就是一个命令。按下按键就发出请求。然后电脑让对应命令去执行。

3、Mediator中介者模式

总结:
多对多。管理一组对象之间的交互,使对象之间解耦
如SignalR

4、State状态模式

总结:
当对象有多个状态且不同的状态涉及到不同的行为时。则可以采用状态模式。
将每个状态对对象行为的影响放到具体的状态对象中去处理。避免了多个if else的判断。
如qq会员不同的等级有不同的功能。

5、Template Method模板方法模式

总结:
当某些行为的执行流程都一致只是某些细节的实现不一样时。则可以采用模板方法模式。
抽象类实现该行为的执行过程。让子类去实现不同的细节。

6、Facade外观模式

总结:
组织小方法已完成某个行为

7、Strategy策略模式

总结:
策略模式主要用于随时对某个方法的实现进行替换。
类似桥接模式。只不过调用方是确定的一个对象。桥接模式则是一个抽象类。

8、Iterator迭代器模式

总结:
迭代器模式提供了一种方法顺序访问一个聚合对象中的各个元素,而又无需暴露该对象的内部实现,这样既可以做到不暴露集合的内部结构,又可让外部代码透明地访问集合内部的数据。

9、Memento备忘录

10、Interpreter解释器模式

11、Chain of Responsibility责任链模式

12、Visitor访问者模式

posted @ 2021-06-15 10:27  三寸月光  阅读(42)  评论(0编辑  收藏  举报