摘要: 就是封装!就是封装!就是封装! 把一个很复杂的过程,包装成一个方法。 调用的时候,只使用了一条语句,非常简介!非常美观! 比如:创建一个对象,只需要: new 类名(); 它的内部实现过程自有人帮你做。 迪米特法则(Law of Demeter)又叫作最少知识原则(The Least Knowled 阅读全文
posted @ 2022-11-25 16:14 在博客做笔记的路人甲 阅读(44) 评论(0) 推荐(0)
摘要: 给某个对象,动态新增功能。 构成: 1、抽象接口:真实对象与装饰对象实现同一个接口。 2、装饰父类:持有一个真实对象的引用,即可为真实对象新增功能。 3、真实对象:被扩展的对象。 4、装饰对象:继承装饰父类,负责添加功能的装饰对象。 比如: 我有一个IO输出流,它只能写入字节数据。真实对象:File 阅读全文
posted @ 2022-11-25 16:00 在博客做笔记的路人甲 阅读(106) 评论(0) 推荐(0)
摘要: 把部分和整体的关系用树形结构来表示,使客户端可以使用统一的方式处理部分对象(比如具体文件)和整体对象(比如一个文件夹)。 构成: Component 抽象角色:定义了叶子和容器结构的共同方法 Leaf 叶子角色:无子节点。 Composite 容器角色:可以包含字节点。 比如: 我要对一个文件进行查 阅读全文
posted @ 2022-11-25 14:25 在博客做笔记的路人甲 阅读(263) 评论(0) 推荐(0)
摘要: 一个类中有两个可以扩展的组件,需要扩展的时候会很麻烦,通过桥接接口,把其中一个组件独立出去。 应用场景: 一个类存在两个独立变化的维度,且这两个维度都需要进行扩展。 如果一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性,避免在两个层次之间建立静态的继承联系,通过桥接模式可以使它们在抽象 阅读全文
posted @ 2022-11-25 11:45 在博客做笔记的路人甲 阅读(481) 评论(0) 推荐(0)
摘要: 代理模式指的是:为某个对象提供一个代理对象,并且由代理对象控制对原对象的访问。 使用场景: 1、安全代理:屏蔽对真实角色的直接访问。 2、远程代理:通过代理类处理远程方法调用(RMI)。 3、延迟加载:先加载轻量级的代理对象,真正需要再加载真实对象。 分类: 1、静态代理:静态定义代理类。 例子:静 阅读全文
posted @ 2022-11-24 21:58 在博客做笔记的路人甲 阅读(587) 评论(0) 推荐(0)
摘要: 适配器模式:我的电脑只有Type-c接口,要使用usb设备,那就需要适配器来进行转接。 构成: 目标接口(Target):用户所期待的接口,抽象类、或者是具体的类,比如电脑上的type-c接口。 需要适配的类(Adaptee):需要适配器转接后才能使用的类,比如usb设备。 适配器(Adapter) 阅读全文
posted @ 2022-11-23 23:38 在博客做笔记的路人甲 阅读(865) 评论(0) 推荐(0)
摘要: 当我需要创建多个相同的对象时,若通过new 创建对象比较费时费力,那么可以通过克隆来创建一个一样的新对象,即通过原型创建新对象。 原型模式大大节省资源测试 克隆方式: 实现Cloneable接口(声明接口:声明此方法可以克隆),重写Object类的clone方法。 浅克隆:被Clone的对象的所有变 阅读全文
posted @ 2022-11-23 19:42 在博客做笔记的路人甲 阅读(83) 评论(0) 推荐(0)
摘要: 但你需要创建大量相同对象的时候,使用原型模式吧!原型模式 克隆猫猫: public class CloneCat implements Cloneable { public CloneCat() { try { Thread.sleep(10);//模拟创建类耗时耗力 } catch (Interr 阅读全文
posted @ 2022-11-23 19:41 在博客做笔记的路人甲 阅读(30) 评论(0) 推荐(0)
摘要: 构件者模式:当某个类的组件构成复杂,我们将组件的制造与装配分开来。 组件的制造者叫做Builder 组件的装配者叫做Director 比如:手机由屏幕、电池、主板三个子组件构成,那我把制作子组件的人叫做PhoneBuilder,把组装它们成为手机的人叫做PhoneDirector。 定义组装者接口和 阅读全文
posted @ 2022-11-23 15:40 在博客做笔记的路人甲 阅读(212) 评论(0) 推荐(0)
摘要: 工厂模式:创建者(工厂)和调用者(用户)分离。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 开闭原则OCP(Open Closed Principle):软件实体(包括类、模块、功能等)应该对扩展开放,但是对修改关闭。 实例工厂:需要对工 阅读全文
posted @ 2022-11-23 12:17 在博客做笔记的路人甲 阅读(343) 评论(0) 推荐(0)