摘要: 个人理解 23种设计模式是前人在工作中的经验总结,按照设计模式进行设计,可以使你少走弯路。当然,也并不是一定要按照设计模式要求的那样,只要进行开发就使用设计模式。工程开发中,需要牢记一点:能够正常工作,没有bug的代码就是好代码。只有在保证这一点的基础上,才可以考虑代码的架构,可扩展性,可维护性,才 阅读全文
posted @ 2019-08-30 15:01 Yong_无止境 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 原则一:单一功能原则 Single Responsibility Principle, SRP 核心思想:解耦和增强内聚性(高内聚,低耦合) 类被修改的几率很大,因此应该专注于单一的功能。如果你把多个功能放在同一个类中,功能之间就形成了关联,改变其中一个功能,有可能中止另一个功能,这时就需要新一轮的 阅读全文
posted @ 2019-08-30 14:36 Yong_无止境 阅读(1926) 评论(0) 推荐(0) 编辑
摘要: 理解:可以广义的理解为创造一种语言,实现该语言的解释器,然后用创造的语言编写程序 对比:如xml就是一种语言,解析xml的代码就是解释器 例子: 阅读全文
posted @ 2019-08-30 14:34 Yong_无止境 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 目的:将命令设计成类的形式,并可以组织成队列 优点: 在需要的情况下,可以比较容易地将命令记入日志 可以容易的实现对请求的撤销和重做 由于新的具体命令类不影响其他的命令类,因此增加新的具体命令类很容易 例子: 阅读全文
posted @ 2019-08-30 14:27 Yong_无止境 阅读(357) 评论(0) 推荐(0) 编辑
摘要: 目的:为其他对象提供一种代理以控制对这个对象的访问 理解:尽管Decorator的实现部分与代理相似,但Decorator的目的不一样。Decorator为对象添加一个或多个功能,而代理则控制对对象的访问 例子: 阅读全文
posted @ 2019-08-30 14:20 Yong_无止境 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 目的:通过共享实例的方式来避免重复的对象被new出来,节约系统资源 别名:享元模式 例子: 阅读全文
posted @ 2019-08-30 14:01 Yong_无止境 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 核心: 把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化 例子: 阅读全文
posted @ 2019-08-30 11:44 Yong_无止境 阅读(320) 评论(0) 推荐(0) 编辑
摘要: 目的:在不破坏系统封装性的前提下,记录系统每一步的状态,可以做到状态回退和前进 方法: 定义一个数据类,保存所有相关数据 定义一个管理类,提供保存和恢复的接口 具体操作类调用管理类的保存和恢复接口 例子: 阅读全文
posted @ 2019-08-30 11:36 Yong_无止境 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 目标:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新 例子: 阅读全文
posted @ 2019-08-30 11:29 Yong_无止境 阅读(379) 评论(0) 推荐(0) 编辑
摘要: 目的:解决多组件之间的通信问题,使得组件之间的通信变得简单 核心:提供一个管理类,用来处理组件之间的通信,所有的组件只和管理类通信,组件彼此之间不在单独通信 例子: 阅读全文
posted @ 2019-08-30 11:20 Yong_无止境 阅读(1247) 评论(0) 推荐(0) 编辑
摘要: 目的:为系统中的一组联动接口提供一个高层次的接口,从而降低系统的复杂性 优点:使用窗口模式可以使得接口变少 继承关系图: 例子: 阅读全文
posted @ 2019-08-30 11:10 Yong_无止境 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 目的:弱化发出请求的对象和处理请求对象的之间的关系 理解:每个处理请求的对象仅仅只关注自己能处理的请求,不关系其他请求 优点: 无需一个管理类来匹配所有的请求,更灵活 责任链可以动态的调整 Andorid中事件处理框架就使用了责任链模式 继承关系图: 例子: 阅读全文
posted @ 2019-08-30 11:01 Yong_无止境 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 核心:将数据结构和数据的处理分开 注意:注意函数的参数传递和调用关系 例子: 阅读全文
posted @ 2019-08-30 10:38 Yong_无止境 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 两点: 继承同一虚接口,实现数据一致性 桥接方式指向被装饰类 目的:在不改变被装饰类功能的前提下增加新功能 特点:继承是子类和父类强耦合,桥接是低耦合 例子: 阅读全文
posted @ 2019-08-30 10:14 Yong_无止境 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 目的:使容器和内容具备一致性 实现:将对象组合成树形结构以表示“部分-整体”的层次结构 实例:文件夹中可以包含文件夹也可以包含文件 例子: 阅读全文
posted @ 2019-08-30 10:04 Yong_无止境 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 思想:将算法进行抽象,然后使用桥接的模式使用算法的抽象接口,达到算法整体替换的目的 理解:和桥接模式相同,只是桥接的两边分开的思想不同 例子: 阅读全文
posted @ 2019-08-30 09:53 Yong_无止境 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 目的:将“类的功能层次结构”和“类的实现层次结构”分类 类的功能层次:通过类的继承添加功能(添加普通函数) 类的实现层次:通过类的继承实现虚函数 理解:和适配器模式中的桥接方法相同 例子: 阅读全文
posted @ 2019-08-30 09:47 Yong_无止境 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 含义:抽象工厂将“抽象零件”组装成“抽象产品” 理解:相比于工厂方法模式,可以根据不同的接口创建不同的产品,说白了就是将一个接口变成两个接口,各自返回不同的抽象产品 例子: 阅读全文
posted @ 2019-08-30 09:34 Yong_无止境 阅读(376) 评论(0) 推荐(1) 编辑
摘要: 使用场景:当需要创建的实例非常复杂时,需要先创建每一个小部分,然后在组装起来 理解:区别于模板方法模式,核心方法一个是在父类中,一个是在另一个监管类中,本质类似 阅读全文
posted @ 2019-08-30 09:20 Yong_无止境 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 使用场景:在不能根据类创建对象的时候,根据已有的对象创建对象 不能根据类创建对象的情况: 创建一个类的对象时,需要根据多种对象来创建,创建的过程非常复杂 难以根据类生成对象 例子: 阅读全文
posted @ 2019-08-30 09:13 Yong_无止境 阅读(219) 评论(0) 推荐(0) 编辑