摘要: 享元模式FlyWeight 场景:如果有很多个完全相同或者相似的对象,可以节省内存资源 核心: 享元模式以共享的方式高效地支持大量细粒对象的重用 享元对象做到共享的关键是区分了内部状态和外部状态: 内部状态:可以共享,不会随环境变化而变化(共有的部分) 外部状态:不可以共享,会随环境变化而改变(独特 阅读全文
posted @ 2019-08-14 14:10 小帆敲代码 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 外观模式 迪米特原则:一个软件实体应当尽可能少的与其他实体发生相互作用 外观模式核心:为子系统提供统一的入口,封装子系统的复杂性,便于客户端调用 相当于找了个代理帮你做了所有事而你只需要和代理打交道 阅读全文
posted @ 2019-08-14 13:00 小帆敲代码 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 装饰模式decorator 作用: -动态的为一个对象增加新功能 -装饰模式是一种用于代替继承的技术,无需通过增加子类就能扩展对象的新功能,适用对象的组合关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀 角色: -Component抽象构件角色:真实对象和装饰对象具有相同的接口,这样,客户端对 阅读全文
posted @ 2019-08-11 16:00 小帆敲代码 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 组合模式Composite 使用组合模式的场景:把部分和整体的关系用树形结构表示,从而使客户端可以使用统一的方式处理对象和整体对象(文件和文件夹) 组合模式核心: -抽象构件(Component)角色:定义了叶子和容器的共同点 -叶子(Leaf)构件角色:无子节点 -容器(Composite)构件角 阅读全文
posted @ 2019-08-11 12:22 小帆敲代码 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 桥接模式 当一个问题违反单一职责原则时,及控制该产品的有多个维度,为了扩展时减少类的膨胀个数,可以选用桥接模式 避免多重继承时 例如买电脑时 桥接模式 阅读全文
posted @ 2019-08-11 09:45 小帆敲代码 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 动态代理 public class StarHandler implements InvocationHandler{ Star realStar; public StarHandler(Star realStar) { this.realStar = realStar; } @Override p 阅读全文
posted @ 2019-08-10 17:27 小帆敲代码 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 静态代理 模拟经纪人与明星开演唱会 public interface Star { /** * 面谈 */ void confer(); /** * 签合同 */ void signContract(); /** * 唱歌 */ void sing(); /** * 收尾款 */ void cole 阅读全文
posted @ 2019-08-10 17:23 小帆敲代码 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 代理模式 核心作用: -通过代理,控制对对象的访问 -可以详细控制机制访问某个(某类)对象的方法,在调用这个方法前做前置处理,调用这个方法后做 后置处理(AOP的微观实现) 应用场景 -安全代理:屏蔽对真是角色的直接接触(经纪人) -远程代理:通过代理类处理远程方法 -延迟加载:先加载轻量级的代理对 阅读全文
posted @ 2019-08-10 17:20 小帆敲代码 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 结构型模式 核心作用:是从程序的结构上实现松耦合,从而可以扩大整体的 类结构,用来解决更大的问题 适配器模式adapter 实际生活中的例子:转换器 适配器的两种方式: 1,类适配器(继承) /**需要适配的对象 * @author 小帆敲代码 * */public class Adaptee { 阅读全文
posted @ 2019-08-10 09:15 小帆敲代码 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 利用序列化和反序列化完成深复制 ByteArrayOutputStream bos=new ByteArrayOutputStream(); ObjectOutputStream oos=new ObjectOutputStream(bos); oos.writeObject(s1); byte[] 阅读全文
posted @ 2019-08-09 22:32 小帆敲代码 阅读(96) 评论(0) 推荐(0) 编辑