自己的理解23种设计模式
Posted 神坑丶不是我
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自己的理解23种设计模式相关的知识,希望对你有一定的参考价值。
总体来说设计模式分为三大类:
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
而以下是我自己的理解
工厂方法模式:对于某个产品,调用者清楚地知道应该使用哪个具体工厂服务,实例化该具体工厂,生产出具体的产品来,并不需要知道是怎么生产的。只是需要一种产品,而不想知道也不需要知道究竟是哪个工厂为生产的,即最终选用哪个具体工厂的决定权在生产者一方,它们根据当前系统的情况来实例化一个具体的工厂返回给使用者,而这个决策过程这对于使用者来说是透明的。
抽象工厂模式:在上述工厂模式的基础上增加了抽象的接口,使得工厂更好创建
单例模式:某个类只能有一个实例,并且它自行创建这个实例,自行向整个系统提供这个实例。
建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示(没看懂)
原型模式:最开始有一个模板,复制过来修改了就能用。
适配器模式:将类自己的接口包裹在一个已存在的类中,就是在别的方法中实例化一下自己。
装饰模式:创建两个对象,一个真实一个是他的装饰,想要扩展功能只需要在其中装饰的对象修改就行。
代理模式:由抽象角色,代理角色,真实角色,角色组成。抽象是一个接口或抽象类,那两个实例化抽象角色在代理上修改。
外观模式:为子系统中的一组接口提供一个一致的界面,定义一个高层接口,这个接口使得这一子系统更加容易使用。在所有方法之上定义一个接口,只修改接口。
桥接模式:存在于多个实体中的共同的概念性联系,抽象化给出的具体实现,将两个十实例的关联弱化。
组合模式:在系统目录结构,网站导航结构上运用。
享元模式:它使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于只是因重复而导致使用无法令人接受的大量内存的大量物件。通常物件中的部分状态是可以分享。常见做法是把它们放在外部数据结构,当需要使用时再将它们传递给享元。
策略模式:定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。
模板方法模式:
观察者模式:
迭代子模式:
责任链模式:
命令模式:
备忘录模式:
状态模式:
访问者模式:
中介者模式:
解释器模式:
以上是关于自己的理解23种设计模式的主要内容,如果未能解决你的问题,请参考以下文章