摘要: 一、定义 将抽象和实现解耦,使得两者可以独立地变化。 桥接模式的四个角色: Abstraction抽象化角色:定义角色行为,同时保存一个对实现化角色的引用,该角色一般是抽象类。 Implementor实现化角色:接口或抽象类,定义角色必须的行为或属性。 RefinedAbstraction修正抽象化 阅读全文
posted @ 2019-01-20 18:03 请叫我大表哥 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 一、定义 将对象组合成树形结构,以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。 角色: Component抽象构建角色:定义参加组合对象的共有方法和属性,可以定义一些默认行为或属性。 Leaf叶子构件:叶子对象,其下再也没有其他分支,依旧是遍历的最小单位。 Compo 阅读全文
posted @ 2019-01-20 18:00 请叫我大表哥 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 一、定义 二、类型 三、适用场景 四、优点 五、缺点 六、类图 七、代码实现 阅读全文
posted @ 2019-01-10 23:13 请叫我大表哥 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 一、定义 将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够一起工作。 角色: Target目标角色:该角色定义把其他类转换为何种接口,也就是我们期望的接口。 Adaptee源角色:想要转换为目标角色的角色。已经存在的运行良好的类,经过适配器角色包装成为 阅读全文
posted @ 2019-01-10 22:21 请叫我大表哥 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 一、定义 动态的给一个对象添加一些额外的职责。就增加功能来说,装饰者相比生成子类更灵活。 角色: Component抽象构建:一个接口或抽象类,定义我们最核心的对象,也就是原始对象。 ConcreateComponent具体构建:是Component的具体实现。 Decorator装饰角色:一般是一 阅读全文
posted @ 2019-01-06 21:37 请叫我大表哥 阅读(173) 评论(0) 推荐(1) 编辑
摘要: 一、定义 要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更容易使用。 二、类型 结构型 三、适用场景 为一个复杂的模块或子系统提供一个供外部访问的接口。 子系统相对独立,外界对子系统的访问只要黑盒操作即可。 四、优点 减少系统的相互依赖,子系统 阅读全文
posted @ 2019-01-05 22:03 请叫我大表哥 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 一、定义 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 二、类型 创建型 三、适用场景 资源优化,初始化类需要消耗非常多的资源,资源包括数据、硬件等。 性能和安全要求场景,通过new产生一个对象需要非常繁琐的数据准备或访问权限。 一个对象多个修改者的场景,一个对象提供给其他对象访 阅读全文
posted @ 2019-01-02 21:15 请叫我大表哥 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 一、定义 确保某个类只有一个实例,并向整个系统提供出这个实例。 二、类型 创建型 三、适用场景 想确保任何情况下都只有一个实例 四、优点 内存只有一个实例,节省内存。 避免对资源多重占用。 在系统设置全局访问点,优化和共享资源访问。 五、缺点 一般没有接口,扩展困难。 与单一职责有冲突。 六、类图 阅读全文
posted @ 2018-12-31 22:34 请叫我大表哥 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 一、定义 是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 创建者模式中的四个角色: Product产品类:由一系列部件组成,要创建的复杂对象。 Builder抽象建造者:给出一个抽象接口,规范产品的组建。 ConcreteBuilder具体创建者:实现Builder接 阅读全文
posted @ 2018-12-29 20:53 请叫我大表哥 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 一、定义 抽象工厂模式是工厂方法的进一步深化,在这个模式中的工厂类不单单可以创建一个对象,而是可以创建一组对象。提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。( 每一个具体工厂都提供了一个或多个工厂方法用于产生多种不同类型的产品)。 产品等级和产品族 产品等级结构:产品等级结构 阅读全文
posted @ 2018-12-28 22:41 请叫我大表哥 阅读(243) 评论(0) 推荐(0) 编辑