摘要:
迭代器模式 定义 :提供一种方法,顺序访问一个集合对象中的各个元素,而又不暴露该对象的内部表示 类型 :行为型 适用场景 : 访问一个集合对象的内容而无需暴露它的内部表示 为遍历不同的集合结构提供一个统一的接口 优点 : 分离了集合对象的遍历行为 封装性良好,用户只需要得到迭代器就可以遍历,而对于遍 阅读全文
摘要:
组合模式 定义 :将对象组合成树形结构以表示“部分 整体”的层次结构,使客户端对单个对象和组合对象保持一致的方式处理 类型 :结构型 适用场景 : 希望客户端可以忽略组合对象与单个对象的差异时 处理一个树形结构时 优点 : 清楚地定义分层次的负责对象,表示对象的全部或部分层次 让客户端忽略了层次的差 阅读全文
摘要:
外观模式(门面模式) 定义 :它为子系统中的一组接口提供一个统一的高层接口。这一接口使得子系统更加容易使用 类型 :结构型 适用场景 : 子系统越来越复杂,增加外观模式提供简单的接口调用 构建多层系统接口,利用外观对象作为每层的入口,简化层间调用 优点 : 简化了调用过程,无需深入了解子系统,防止带 阅读全文
摘要:
装饰者模式 定义 :在不改变原有对象的基础上,将功能附加到对象上,提供了比继承更有弹性的替代方案,扩展原有对象的功能 类型 :结构型 适用场景 : 扩展一个类的功能或给一个类添加附加的职责 动态地给一个对象添加功能 优点 : 继承的有力补充,比继承灵活,不改变原有对象的情况下给一个对象扩展功能(继承 阅读全文
摘要:
建造者 定义 :将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 特征 :用户只需指定需要建造的类型就可以得到他们,建造的过程和细节不需要知道 类型 :创建型 适用场景 : 如果一个对象有非常复杂的内部结构(很多属性) 想把复杂对象的创建和使用分离 优点 :封装性好,创建和使 阅读全文
摘要:
抽象工厂 定义 :抽象工厂模式提供了一个创建一系列相关或者相互依赖对象的接口,无需指定它们具体的类 创建型 :创建型 适用场景 : 客户端(应用层)不依赖于产品类实例如何被创建、实现等细节 强调一系列相关的产品对象(属于同一产品族)一起使用创建对象需要大量的重复代码 提供一个产品类的库,所有的产品以 阅读全文
摘要:
工厂方法 定义 :定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行 创建型 :创建型 适用场景 : 创建对象需要大量重复的代码 客户端(应用层)不依赖于产品类实例如何被创建、实现等细节 一个类通过其子类来指定创建哪个对象 优点 : 用户只需要关心所 阅读全文
摘要:
23种设计模式和7大原则 本文旨在对设计模式做一个梳理,参考了书籍和博客,不求详尽,但求实用,在日常编码或源码阅读过程中,能够唤起“模式意识” 设计模式 设计模式(Design Pattern)是经过高度抽象化的在编程中可以反复使用的代码设计经验总结。 基本原则 单一职责原则 单一职责原则又称为单一 阅读全文
摘要:
简单工厂(静态工厂) 定义 :由一个工厂对象决定创建出哪一种产品类的实例 类型 :创建型,不属于GOF23种设计模式 适用场景 : 工厂类负责创建的对象比较少 客户端(应用层)只知道传入工厂类的参数,对于如何创建对象(逻辑)并不关心 优点 : 只需要传入一个正确的参数,就可以获取你所需要的对象而不需 阅读全文