01 2018 档案

摘要:一、访问者模式概述 (1)模式动机 对于存储在一个集合中的对象,他们可能具有不同的类型(即使有一个公共的接口),对于该集合中的对象,可以接受一类称为访问者的对象来访问,不同的访问者其访问方式也有所不同。 (2)定义 表示一个作用于某对象结构中的各元素操作,它使我们可以在不改各元素类的前提下定义作用于 阅读全文
posted @ 2018-01-23 11:44 C3Stones 阅读(355) 评论(0) 推荐(0) 编辑
摘要:一、模板方法模式概述 模板方法模式是编程中经常使用的模式。它定义了一种操作中的算法架构,将某些步骤延迟到子类中实现。这样,新的子类可以在不改变一个算法结构的前提下重新定义该算法的某些特定步骤。 (1)核心: 处理某个流程的代码已经都定义好了,但是其中某个节点的代码暂时不能确定,因此,采用模板方法模式 阅读全文
posted @ 2018-01-23 11:37 C3Stones 阅读(306) 评论(0) 推荐(0) 编辑
摘要:一、策略模式概述 策略模式对应于解决某一个问题的一个算法族,允许用户从该算法族中任选一种算法解决一个问题,同时可以方便的更换算法或者增加新的算法。并且由客户端决定调用哪个算法。 策略模式的本质: 分离算法,选择实现。 二、策略模式场景导入 某公司市场部在接单时根据不同的客户进行报价,可以划分为以下几 阅读全文
posted @ 2018-01-23 11:14 C3Stones 阅读(627) 评论(0) 推荐(0) 编辑
摘要:一、状态模式概述 用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题。 结构: (1)Context 环境类 环境类中维护一个 State 对象,它定义了当前的状态。 (2)State 抽象状态类 (3)ConcreteState 具体状态类 每一个类封装了一个状态对应的行为。 二、状态模 阅读全文
posted @ 2018-01-23 10:25 C3Stones 阅读(562) 评论(0) 推荐(0) 编辑
摘要:一、观察者模式概述 观察者模式主要用于 1 :N 的通知。当一个对象(目标对象 Subject 或 Observable)的状态变化时,它需要通知一系列对象(观察者对象 Observer),令它们做出响应。 通知观察者的方式: (1)推 每次都会把通知以广播的方式发送给所有观察者,所有观察者只能被动 阅读全文
posted @ 2018-01-23 09:49 C3Stones 阅读(358) 评论(0) 推荐(0) 编辑
摘要:一、备忘录模式概述 保存某个对象内部状态的拷贝,使得以后就可以将该对象恢复到原先的状态。 结构: (1)源发器类 Originator 负责创建一个备忘录 Memento,用以记录当前时刻它的内部状态,并可使用备忘录恢复内部状态。 (2)备忘录类 Memento 负责存储 Originator 对象 阅读全文
posted @ 2018-01-22 17:11 C3Stones 阅读(268) 评论(0) 推荐(0) 编辑
摘要:一、中介者模式概述 如果一个系统中对象之间的联系呈现网状结构,对象之间存在大量多对多的关系,导致关系及其复杂,这时可以引入一个中介者对象,使得各个对象只跟中介者对象打交道,从而将复杂的网络结构化为星型结构。 核心: (1)如果一个系统中对象之间的联系呈现网状结构,对象之间存在大量的多对多关系,将导致 阅读全文
posted @ 2018-01-22 16:45 C3Stones 阅读(359) 评论(0) 推荐(0) 编辑
摘要:一、迭代器模式概述 提供一种可以遍历聚合对象的方式。又称为:游标(cursor)模式 结构: (1)聚合对象:存储数据 (2)迭代器:遍历数据 二、迭代器模式示例代码 定义:正向遍历迭代器和逆向遍历迭代器 测试: 控制台输出: 三、迭代器模式常见开发应用场景 (1)JDK内置的迭代器(List / 阅读全文
posted @ 2018-01-22 15:30 C3Stones 阅读(254) 评论(0) 推荐(0) 编辑
摘要:一、解释器模式概述 (1)它是一种不常用的设计模式; (2)由于描述如何构成一个简单的语言解释器,主要用于使用面向对象语言开发的编译器和解释器的设计; (3)当我们需要开发一种新的语言时,可以考虑使用解释器模式; (4)注意:尽量不要使用解释器模式,后期维护会有很大麻烦。在项目中,可以使用 Jrub 阅读全文
posted @ 2018-01-22 15:12 C3Stones 阅读(213) 评论(0) 推荐(0) 编辑
摘要:一、命令模式概述 将一个请求封装到一个对象,从而使得可用不同的请求对客户进行参数化。 二、命令模式结构 (1)Command 抽象命令类 (2)ConcreteCommand 具体命令类 (3)Invoker 调用者 / 请求者 请求的发送者,他通过命令对象来执行。一个调用者并不需要在设计时确定其接 阅读全文
posted @ 2018-01-22 14:46 C3Stones 阅读(456) 评论(0) 推荐(0) 编辑
摘要:一、责任链模式概述 将能够处理同一类请求的对象连成一条链,所提交的请求沿着链传递,链上的对象逐个判断是否有能力处理该请求。 如果能则处理,否则传递给链上的下一个对象去处理。 定义责任链 (1)通过链表的方式实现职责链 (2)通过非链表的方式实现职责链 通过集合、数组生成职责链更加实用!实际上,很多项 阅读全文
posted @ 2018-01-22 11:31 C3Stones 阅读(355) 评论(0) 推荐(0) 编辑
摘要:一、享元模式概述 内存属于稀缺资源,不要随便浪费。如果有很多个完全相同或相似的对象,可以通过享元模式,节省内存。 享元模式核心: (1)享元模式可以共享的、方式高效的支持大量细粒度对象的重用; (2)享元对象能做到共享的关键是区分了内部状态和外部状态: ① 内部状态:可以共享,不会随环境变化而改变 阅读全文
posted @ 2018-01-22 10:52 C3Stones 阅读(165) 评论(0) 推荐(0) 编辑
摘要:一、外观模式概述 外观模式也称为门面模式。 核心:为了系统提供统一的入口,封装子系统的复杂性,便于客户端调用。 二、外观模式场景导入与示例代码 场景:要想自己去注册一个公司,首先去工商局检测命名是否合法,再去质量监督局办理组织机构代码证,再去税务局办理税务登记,最后去工商银行开户。但是使用外观模式, 阅读全文
posted @ 2018-01-22 10:20 C3Stones 阅读(177) 评论(0) 推荐(0) 编辑
摘要:一、组合模式概述 将对象组合成树状结构以表示“部分和整体”层次结构,使得客户可以统一的调用叶子对象和容器对象。 (1)组合模式的使用场景 把部分和整体的关系用树形结构来表示,从而使客户端可以使用统一的方式处理部分对象和整体对象。 (2)组合模式核心 抽象构件(Component)角色:定义了叶子和容 阅读全文
posted @ 2018-01-22 09:57 C3Stones 阅读(360) 评论(0) 推荐(0) 编辑
摘要:一、装饰模式概述 (1)动态的为一个对象增加新的功能。 (2)装饰模式是一种用于代替继承的技术,无需通过继承增加子类就能扩展对象的新功能。 使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀。 二、装饰模式实现细节 (1)Componen 抽象构件角色: 真实对象和装饰对象有相同的 阅读全文
posted @ 2018-01-18 17:33 C3Stones 阅读(286) 评论(0) 推荐(0) 编辑
摘要:一、桥接模式概述 桥接模式核心要点: 处理多层继承结构,处理多维度变化的场景,将各个维度设计成独立的继承结构,使各个维度可以独立的扩展在抽象层建立关联。 二、桥接模式场景提出与存在问题 商城系统中常见的商品分类,以电脑为类,如何良好的处理商品分类销售的问题? 这个场景中有两个变化的维度:品牌、电脑类 阅读全文
posted @ 2018-01-18 16:39 C3Stones 阅读(271) 评论(0) 推荐(0) 编辑
摘要:一、代理模式概述 1、代理模式的核心作用 (1)通过代理,控制对象的访问; (2)可以详细的控制访问某个(某类)对象的方法,在调用这个方法前做前置处理,调用这个方法后做后置处理。(AOP的微实现) 代理模式是 AOP(Aspect Oriented Programming 面向切面编程)的核心实现机 阅读全文
posted @ 2018-01-17 16:26 C3Stones 阅读(442) 评论(0) 推荐(0) 编辑
摘要:一、适配器模式概述 将一个类的接口转换成客户可用的另外一个接口。 将原本不兼容不能在一起工作的类添加适配处理类,使其可以在一起工作。 二、适配器模式场景 要想只有USB接口的电脑想使用PS/2接口的键盘,必须使用PS/2转USB的适配器。 三、适配器模式示例 (1)定义USB接口 (2)定义PS/2 阅读全文
posted @ 2018-01-16 17:50 C3Stones 阅读(349) 评论(0) 推荐(0) 编辑
摘要:区别就在于是否对对象中的引用变量所指向的对象进行拷贝。 1.浅克隆/浅复制/浅拷贝 浅拷贝是指在拷贝对象时,对于基本数据类型的变量会重新复制一份,而对于引用类型的变量只是对引用进行拷贝,没有对引用指向的对象进行拷贝。 2.深克隆/深复制/深拷贝 深拷贝是指在拷贝对象时,同时会对引用指向的对象进行拷贝 阅读全文
posted @ 2018-01-15 18:03 C3Stones 阅读(3256) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示