设计模式笔记
这个只能理解记忆,很多时候有些结构容易记混淆,结合例子记忆会好些,记录一篇方便以后回来看看哈哈哈
分为三种类型:
一、创建型模式
创建型模式提供了创建对象的机制,能够提升已有代码的灵活性和可复用性。
工厂方法
工厂方法是一种创建型设计模式,其在父类中提供一个创建对象的方法,允许子类决定实例化对象的类型。
====
示例:=================================================================
以下示例演示了如何使用工厂方法开发跨平台 UI(用户界面)组件,并同时避免客户代码与具体 UI 类之间的耦合。
适合应用场景:
当你在编写代码的过程中,如果无法预知对象确切类别及其依赖关系时,可使用工厂方法。
如果你希望用户能扩展你软件库或框架的内部组件,可使用工厂方法。
如果你希望复用现有对象来节省系统资源,而不是每次都重新创建对象,可使用工厂方法。
抽象工厂
抽象工厂是一种创建型设计模式,它能创建一系列相关的对象,而无需指定其具体类。
生成器
生成器是一种创建型设计模式,使你能够分步骤创建复杂对象。该模式允许你使用相同的创建
代码生成不同类型和形式的对象。
原型
原型是一种创建型设计模式,使你能够复制已有对象,而又无需使代码依赖它们所属的类。
单例
单例是一种创建型设计模式,让你能够保证一个类只有一 个实例,并提供一个访问该实例的全局节点。
二、结构型模式
结构型模式介绍如何将对象和类组装成较大的结构,并同时保持结构的灵活和高效。
适配器
适配器是一种结构型设计模式,它能使接口不兼容的对象能够相互合作。
示例:==================================================================
适配器假扮成一个圆钉 (RoundPeg), 其半径等于方钉(SquarePeg)横截面对角线的一半(即能够容纳方钉的最小外接圆的半径)。
桥接
桥接是一种结构型设计模式,可将一个大类或一系列紧密 相关的类拆分为抽象和实现两个独立的层次结构,从而能在开发时分别使用。
示例:==============================================================
装饰
装饰是一种结构型设计模式,允许你通过将对象放入包含行为的特殊封装对象中来为原对象绑定新的行为。
代理
代理是一种结构型设计模式,让你能够提供对象的替代品 或其占位符。代理控制着对于原对象的访问,并允许在将请求提交给对象前后进行一些处理。
三、行为模式
行为模式负责对象间的高效沟通和职责委派。
迭代器
迭代器是一种行为设计模式,让你能在不暴露集合底层表现形式(列表、栈和树等)的情况下遍历集合中所有的元素。
观察者
观察者是一种行为设计模式,允许你定义一种订阅机制,可在对象事件发生时通知多个“观察”该对象的其他对象。
如果你的应用中有多个不同类型的发布者,且希望订阅者可兼容所有发布者,那么你甚至可以进一步让所有订阅者遵循同样的接口。该接口仅需描述几个订阅方法即可。这样订阅者就能在不与具体发布者类耦合的情况下通过接口观察发布者的状态。
示例:================================================================
模板方法
模板方法是一种行为设计模式,它在超类中定义了一个算法的框架,允许子类在不修改结构的情况下重写算法的特定步骤。
以上只记录了几个经常用的,后面再慢慢添加!
【参考资料】书籍:深入设计模式(见下方云盘链接)
【资源分享】链接:https://pan.baidu.com/s/1YDGaVxgSk4h5aOWyD4Dtig
提取码:xanh