[设计模式] 知识体系整理
开个坑,对设计模式的简单理解和使用 下面的大纲就是后续分享的内容 部分知识来自网络
完成一块的总结就补充链接到对应的标题。
设计模式
个人的观点:要学会避免为了设计而设计,避免过度设计。在充分理解逻辑后,合理利用设计模式重构代码,让代码便于维护。推荐阅读《大话重构》、《深入浅出设计模式》等书籍
每个原则或模式前的说明,也许比较绕口,不好理解。不过但你掌握之后,在看这句话,你就会豁然开朗。
7 大原则
单一职责
一个类或模块应该只负责一项功能或职责。 知识链接
里氏替换
子类应该能够替换父类并且表现出相同的行为。 知识链接
依赖倒置
要求类或模块之间的依赖关系应该通过抽象接口进行,而不是直接依赖于具体实现。 知识链接
接口隔离
一个类或模块不应该强迫其它类或模块依赖于它们不需要的接口。 知识链接
开闭原则
一个软件实体如类、模块应该通过扩展来改变其行为,而不是通过修改已有的代码。 知识链接
组合/聚合复用
优先使用组合或聚合关系来实现对象之间的复用,而不是继承关系。 知识链接
迪米特法则
一个对象应该尽量减少对其他对象的依赖,只与其直接的成员变量、方法参数、方法返回值等进行交互。 知识链接
24 个设计模式
创建型
简单工厂
提供了一种创建对象的方式,而无需暴露对象创建的逻辑细节。 知识链接
工厂方法
定义了一个用于创建对象的接口,但将具体对象的创建延迟到子类中。 知识链接
抽象工厂
提供了一种创建一系列相关或相互依赖对象的接口,而无需指定具体实现类。 知识链接
单例模式
保证一个类只有一个实例,并提供一个全局访问点。 知识链接
生成器
为了解决在创建复杂对象时,如何将构造过程与具体表示分离的问题。 知识链接
原型模式
适用于创建过程消耗资源较多,或者创建过程较为复杂的情况。 知识链接
结构型
外观
定义了一个高层接口,这个接口使得这一子系统更加容易使用。 知识链接
适配器
通过适配器将一个类的接口转换成客户希望的另一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 知识链接
桥接
通过将实现部分从抽象部分分离出来,使得两部分可以独立地变化。 知识链接
组合
定义了一种将对象组合成树状的层次结构的模式,可以将这些对象组合成树形结构以表示部分 - 整体的层次结构,使用户对单个对象和组合对象具有一致的访问性。 知识链接
装饰
通过将对象放入包含行为的特殊封装对象中来为对象添加新的行为。 知识链接
享元
运用共享技术有效地支持大量细粒度的对象。 知识链接
代理
通过为其他对象提供一种代理以控制对这个对象的访问。 知识链接
行为型
责任链
它让你可以将请求沿着处理者链进行发送。 知识链接
策略
它使你能在运行时改变对象的行为。 知识链接
模板方法
定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中。 知识链接
命令模式
调用对象寻找可以处理该命令的合适的对象,并把命令传给相应的对象,该对象执行命令。 知识链接
观察者
定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。 知识链接
访问者
定义了一种将数据操作与数据结构分离的设计模式。 知识链接
状态
允许对象在内部状态改变时改变它的行为,对象看起来好象改了它的类。 知识链接
解释器
使用解释器模式为语言创建解释器,通常由语言的语法和语法分析来定义。 知识链接
迭代器
提供一种方法顺序访问一个聚合对象中各个元素,而又无须暴露该对象的内部表示。 知识链接
中介者
定义了一个对象,该对象封装了一组对象如何交互的方式。 知识链接
备忘录
提供了一种保存和恢复对象之前状态的机制。 知识链接