摘要: 1.定义 定义一个操作中算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变算法的结构即可重定义该算法的某些特定步骤。它是一种类行为型模式。 2.结构 ① 模板方法:定义了算法的骨架,按某种顺序调用其包含的基本方法。可以用final修饰,不让子类去覆盖。 ② 基本方法:是整个算法中的一个 阅读全文
posted @ 2021-04-28 11:03 heils 阅读(46) 评论(0) 推荐(0)
摘要: 11种关系模式之间的关系 阅读全文
posted @ 2021-04-28 10:04 heils 阅读(233) 评论(0) 推荐(0)
摘要: 1.定义 代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。 2.代理模式分为3类 静态代理 代理对象与目标对象要实现相同的接口,我们得为每一个服务都得创建代理类,工作量太大,不易管理。同时接口一旦发生改变,代理类也得相应修改。 动态代理(JDK代理,也叫接口代理) 动态代理有以 阅读全文
posted @ 2021-04-27 20:23 heils 阅读(65) 评论(0) 推荐(0)
摘要: 1.定义 运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似类的开销,从而提高系统资源的利用率。 2. 主要优点:相同对象只要保存一份,这降低了系统中对象的数量,从而降低了系统中细粒度对象给内存带来的压力。 主要缺点: 为了使对象可以共 阅读全文
posted @ 2021-04-27 16:46 heils 阅读(64) 评论(0) 推荐(0)
摘要: 1.定义 隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。 外部应用程序不用关心内部子系统的具体细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。 2.结构与实现 外观(Facade)模式包含以下主要角色。 外观(Facade)角色:为多个子系统对外提供一个共同的接口。 子系统 阅读全文
posted @ 2021-04-26 21:49 heils 阅读(60) 评论(0) 推荐(0)
摘要: 1.定义 有时又叫作部分-整体模式,它是一种将对象组合成树状的层次结构的模式,用来表示“部分-整体”的关系,使用户对单个对象和组合对象具有一致的访问性。 关键代码 树枝内部组合该接口,并且含有内部属性 List,里面放 Component。 2.组合模式的结构 组合模式包含以下主要角色。 抽象构件( 阅读全文
posted @ 2021-04-26 21:15 heils 阅读(39) 评论(0) 推荐(0)
摘要: 1.定义 动态的将新功能附加到对象上。在对象功能扩展方面,它比继承更有弹性。 2.结构图 装饰器模式主要包含以下角色。 抽象构件(Component)角色:定义一个抽象接口以规范准备接收附加责任的对象。 具体构件(ConcreteComponent)角色:实现抽象构件,通过装饰角色为其添加一些职责。 阅读全文
posted @ 2021-04-26 19:56 heils 阅读(54) 评论(0) 推荐(0)
摘要: 1.定义 将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。 2. 结构图 3.代码实现 package bridge; public class BridgeTest { public static void mai 阅读全文
posted @ 2021-04-26 16:27 heils 阅读(107) 评论(0) 推荐(0)
摘要: 1. 定义 适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。 主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。 2. 类适配器模式 Adapter类,通过继承src类,实现dst类接口,完成src->dst的适配 3. 对象 阅读全文
posted @ 2021-04-26 11:23 heils 阅读(87) 评论(0) 推荐(0)
摘要: 1.定义 封装一个复杂对象构造过程,并允许按步骤构造。 2. 生成器模式结构 四种角色: (1)产品(Product):具体生产器要构造的复杂对象;(2)抽象生成器(Bulider):抽象生成器是一个接口,该接口除了为创建一个Product对象的各个组件定义了若干个方法之外,还要定义返回Produc 阅读全文
posted @ 2021-04-25 11:31 heils 阅读(159) 评论(0) 推荐(0)