摘要: 装饰模式 职责: 动态的为一个对象添加新的功能 装饰模式i是一种用于代替继承的技术,无须通过继承增加子类就能扩展对象的新功能,使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀 现在假设:有一辆汽车 ,我们需要他实现 会飞,会游泳,会自动驾驶的功能,我们没有用设计模式之前应该是 定 阅读全文
posted @ 2019-05-13 11:05 北京de小刀 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 组合模式 工作流程分析 组合模式为处理树形结构提供了完美的解决方案,描述了如何将容器和叶子进行递归组合,使得用户在使用时可以一致性的对待容器和叶子 当容器对象的指定方法被调用时,将遍历整个树形结构,寻找包含整个方法的成员,并调用执行,其中,使用了递归调用的机制对整个结构进行处理 角色: 抽象组件角色 阅读全文
posted @ 2019-05-12 11:36 北京de小刀 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 桥接模式 场景分析: 商城系统中常见的商品分类,以电脑为类,如何良好的处理商品分类销售的问题? 这个场景中有两个变化的维度:电脑类型、电脑品牌。 不是使用桥接模式 类图: 代码: package disign.brige; /** * @Created by xiaodao */ public in 阅读全文
posted @ 2019-05-10 19:01 北京de小刀 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 代理模式 代理模式是工作中很重要的一个角色,相信大家对aop已经不再陌生,这里我举个例子 假设很多人都找周杰伦唱歌.他需要 1.面谈 2.合同起草 3.签字,收预付款 4.安排机票 5.唱歌 6.收尾款 那么如果有很多人都要去找周杰伦唱歌,那么周杰伦就忙不过来了.这个时候他找一个经济人来帮他把重复的 阅读全文
posted @ 2019-05-10 17:09 北京de小刀 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 外观模式 外面模式也叫门面模式,它符合迪米特法则(最少知道原则) 为子系统提供一个统一的入口,降低子系统的复杂性,便于客户调用,有的同学之前有可能不知道,但是你在写代码的时候可能都在用,只不过你不知道而已. 代码: 下面类是买组件,如果一个一个买的话就需要买三次,如果是交给一个人去买,他就都给我买回 阅读全文
posted @ 2019-05-09 16:02 北京de小刀 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 什么是适配器模式? 将一个类的接口转换成客户希望的另外一个接口,adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作. 模式中的角色 适配器: 类图: 类图也不是太复杂,调用者创建了俩个对象一个是适配器 一个是被适配的实例 目标是适配成鸭子 在这里duck的角色就是目标对象( 阅读全文
posted @ 2019-05-09 14:11 北京de小刀 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 原型模式(prototype) 这个模式一般在工作中很少用,但是在框架里可能经常有,它是在什么情况下用呢?比如我们创建一个对象,需要10ms,在创建一个对象也需要10ms,这样就很耗时.. 举一个很简单的例子.小A在考试,做一份卷子需要一个小时.这时候小A做完啦.小B把小A的卷子.copy过来用了几 阅读全文
posted @ 2019-05-08 22:53 北京de小刀 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 建造者模式 他的本质主要是: 分离了组件的构造(由builder来负责),和装配(由Director负责),从而构造出复杂的对象,这个模式使用于:某个对象构建过程复杂的情况下使用 建造模式可以将一个产品的内部表象(internal representation)与产品的生产过程分割开来,从而可以使一 阅读全文
posted @ 2019-05-08 21:15 北京de小刀 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 面对对象设计的原则 1.OCP (开闭原则 open-close principle) 一个软件类的实体 应该对扩展开放对修改关闭 2.DIP(依赖反转原则 Dependence Inversion principle) :要针对接口编程 不要针对实现编程 通俗来讲 就是依赖于接口而不是类调用之间之 阅读全文
posted @ 2019-05-08 11:36 北京de小刀 阅读(307) 评论(0) 推荐(1) 编辑
摘要: exchanger 1.它的使用必须是成对出现的.如果不是成对的话,可能交换错误 2.exchanger 交换的信息是同一个内存地址,而不是copy 会涉及到线程安全的问题 3.exchanger 是可以一直发生交换的 public static void main(String[] args) { 阅读全文
posted @ 2019-05-07 16:02 北京de小刀 阅读(250) 评论(0) 推荐(0) 编辑