随笔分类 -  设计模式

java23种设计模式
摘要:模板方法模式 举例: 平时我们去吃饭. 1.去饭店 2.点餐 3.结账 但是我们不知道要吃什么.中间是是不知道的. 介绍: 模板方法模式是编程中经常用到的模式,它定义了一个操作中的算法骨架,将某些步骤延迟到子类中实现,这样新的子类就可以在不改变一个算法结构的前提下重新定义该算法的某些步骤 核心: 处 阅读全文
posted @ 2019-05-27 16:54 北京de小刀 阅读(137) 评论(0) 推荐(0) 编辑
摘要:观察者模式 主要内容是:用于1->N的通知,当一个对象subject(目标对象subject)的状态变化时,他需要及时的告知一系列的对象(观察者,observer),让他们做出响应 1.推 每次都会把通知以广播的形式发送给所有观察者,所有的观察者只能被动的接受 2.拉: 观察者只要知道有情况即可,至 阅读全文
posted @ 2019-05-19 11:53 北京de小刀 阅读(182) 评论(0) 推荐(0) 编辑
摘要:命令模式 介绍:将一个请求封装为一个对象,从而是我们使我们可用不同的请求对客户进行参数化,对请求排队或者记录日志,以及支持可撤销的操作,也称为action模式 角色: Command:抽象命令类 concreteCommand:具体命令类 Invoke:调用者/请求者 请求的发送者,它通过命令对象来 阅读全文
posted @ 2019-05-18 21:21 北京de小刀 阅读(182) 评论(0) 推荐(0) 编辑
摘要:中介模式 核心: 现在我们使用代码来实现下中介模式. 主要有3个部门研发部,市场部 财务部,他们要相互调用,我们通过总经理来实现他们调用的解耦. 类图: Mediator类是中间类的接口 president是总经理要进行处理各个部门调用的逻辑 他实现了 mediator接口 Department 是 阅读全文
posted @ 2019-05-18 21:21 北京de小刀 阅读(168) 评论(0) 推荐(0) 编辑
摘要:迭代模式 这个模式在工作中经常用,但是我没有没有做过多的了解.在项目中一般我们不需要自己去实现,如果我们实现自己的数据结构的时候可以使用这个模式为我们的数据结构具有可迭代的功能 角色: iterator(迭代器):接口 他定义了迭代器可具有的功能 aggregate(集合): 类,可以是我们自己的集 阅读全文
posted @ 2019-05-14 16:28 北京de小刀 阅读(157) 评论(0) 推荐(0) 编辑
摘要:责任链模式(chain of responsibility) 定义: 将能够处理同一类请求的对象连成一条链,所提交的请求沿着链传递,链上的对象逐个判断是否有能力处理该请求,如果能则处理,如果不能则传给链上的下一个对象. 使用责任链模式,可以将请求方和处理方的关系弱化,让各方都可以成为独立复用的组件. 阅读全文
posted @ 2019-05-14 13:46 北京de小刀 阅读(208) 评论(0) 推荐(0) 编辑
摘要:享元模式 场景: 内存属于稀缺资源,不要随便浪费。如果有很多个完全相同或相似的 对象,我们可以通过享元模式,节省内存. 核心: 本质:享元模式以共享的方式高效地支持大量细粒度对象的重用 享元对象能做到共享的关键是区分了内部状态和外部状态 内部状态:可以共享,不会随环境变化而改变 外部状态:不可以共享 阅读全文
posted @ 2019-05-13 22:15 北京de小刀 阅读(161) 评论(0) 推荐(0) 编辑
摘要:装饰模式 职责: 动态的为一个对象添加新的功能 装饰模式i是一种用于代替继承的技术,无须通过继承增加子类就能扩展对象的新功能,使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀 现在假设:有一辆汽车 ,我们需要他实现 会飞,会游泳,会自动驾驶的功能,我们没有用设计模式之前应该是 定 阅读全文
posted @ 2019-05-13 11:05 北京de小刀 阅读(187) 评论(0) 推荐(0) 编辑
摘要:组合模式 工作流程分析 组合模式为处理树形结构提供了完美的解决方案,描述了如何将容器和叶子进行递归组合,使得用户在使用时可以一致性的对待容器和叶子 当容器对象的指定方法被调用时,将遍历整个树形结构,寻找包含整个方法的成员,并调用执行,其中,使用了递归调用的机制对整个结构进行处理 角色: 抽象组件角色 阅读全文
posted @ 2019-05-12 11:36 北京de小刀 阅读(165) 评论(0) 推荐(0) 编辑
摘要:桥接模式 场景分析: 商城系统中常见的商品分类,以电脑为类,如何良好的处理商品分类销售的问题? 这个场景中有两个变化的维度:电脑类型、电脑品牌。 不是使用桥接模式 类图: 代码: package disign.brige; /** * @Created by xiaodao */ public in 阅读全文
posted @ 2019-05-10 19:01 北京de小刀 阅读(166) 评论(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小刀 阅读(160) 评论(0) 推荐(0) 编辑
摘要:什么是适配器模式? 将一个类的接口转换成客户希望的另外一个接口,adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作. 模式中的角色 适配器: 类图: 类图也不是太复杂,调用者创建了俩个对象一个是适配器 一个是被适配的实例 目标是适配成鸭子 在这里duck的角色就是目标对象( 阅读全文
posted @ 2019-05-09 14:11 北京de小刀 阅读(197) 评论(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小刀 阅读(196) 评论(0) 推荐(0) 编辑
摘要:面对对象设计的原则 1.OCP (开闭原则 open-close principle) 一个软件类的实体 应该对扩展开放对修改关闭 2.DIP(依赖反转原则 Dependence Inversion principle) :要针对接口编程 不要针对实现编程 通俗来讲 就是依赖于接口而不是类调用之间之 阅读全文
posted @ 2019-05-08 11:36 北京de小刀 阅读(310) 评论(0) 推荐(1) 编辑
摘要:关于设计模式,之前已经看过很多很多了.但是每次到过了很久之后,在此回忆总是感觉有模糊的感觉.这次我要重新学习一下设计模式.并在这里做一个博客记录,以作为以后的备忘吧.大家看过如果有问题或者更好的方式,可以在评论留言 这篇文章也是我写设计模式的开章.主要方式是看视频和看书,设计模式被人称为GOF23 阅读全文
posted @ 2019-05-05 15:52 北京de小刀 阅读(206) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示