![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
ljt2724960661
这个作者很懒,什么都没留下…
展开
-
代理模式
代理模式:为其他对象提供一种代理以控制对这个对象的访问。下面为代理模式的一个小案例:第一步:写一个接口public interface GiveGift {void sendDoll();void sendFlower();}第二步:public class Pursuit implements GiveGift{SchoolGirl mm;public原创 2016-05-10 09:03:29 · 230 阅读 · 0 评论 -
设计模式笔记—迪米特原则
迪米特原则 概念:迪米特原则(Law of Demeter,LoD),也称最少知识原则(Least Knowledge Principle),虽然名字不同,但描述的是同一个规则:一个对象应该对其他对象有最少的了解。通俗地讲,一个类应该对自己需要耦合或调用的类知道得最少,你(被耦合或调用的类)的内部是如何复杂都和我没关系,那是你的事情,我就知道你提供的这么多public方法,我就调用原创 2018-01-25 16:46:49 · 154 阅读 · 0 评论 -
设计模式笔记—责任链模式
责任链定义 使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。 使用场景 多个对象可以处理同一请求,但具体由哪个对象处理则在运行时动态决定。 在请求处理者不明确的情况下向多个对象中的一个提交一个请求。 需要动态指定一组对象处原创 2018-02-02 11:35:02 · 162 阅读 · 0 评论 -
设计模式笔记—单一职责原则
单一职责原则 概念: 英文名称是Single Responsibility Principle,简称SRP.就一个类而言,应该仅有一个引起它变化的原因。意思是当你在设计一个类的时候,应该尽量划分这个类的职责是什么,让它发生改变的因素尽量单一。举例如下: 案例:接口设计 未划分之前原创 2018-01-19 22:29:29 · 244 阅读 · 0 评论 -
设计模式笔记—建造者模式
建造者模式 概念:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。在建造者模式中,通常有4个角色:Product产品类,Builde抽象建造者,ConcreteBuilder具体建造者,Director导演类。 使用场景:(1)相同的方法,不同的执行顺序,产生不同的事件效应。(2)多个部件或零件,可以装配到一个对象中,但是产生的运行结果原创 2018-02-05 11:06:36 · 172 阅读 · 0 评论 -
设计模式笔记—单例模式
单例模式定义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。使用场景 确保某一个类有且只有一个对象的场景,避免产生多个对象,消耗过多的资源,或者某一种类型的对象只应该有且只有一个。例如,创建一个对象需要消耗的资源过多,如要访问IO和数据库等资源,这时就要考虑使用单例模式。关键点1 构造函数不对外开放,一般为Private;2 通过一个静态方法或者枚举返回单例类对象;3 ...原创 2016-02-14 20:23:58 · 766 阅读 · 0 评论 -
设计模式笔记—策略模式
策略模式 概念 定义一系列算法,并将每一个算法封装起来,而且使它们可以相互替换。策略模式让算法独立于使用它的客户而独立变化。 使用场景 1)针对同一类型问题的多种处理方式,仅仅是具体行为有差别时。 2)需要安全地封装多种同一类型的操作时。原创 2018-02-06 10:44:26 · 182 阅读 · 0 评论 -
设计模式笔记—命令模式
命令模式 命令模式:将一个请求封装成一个对象,从而让用户使用不同的请求把客户端参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。它是行为型模式之一,比较灵活。我们接触命令模式比较多的就是程序菜单命令,如在操作系统中,我们点击“关机”命令,系统就会执行一系列的操作,如先是暂停处理事件,保存系统的一些配置,然后结束程序进程,最后调用内核命令关闭计算机等,对于这一系列的命令,用户不用去管...原创 2018-02-12 11:24:04 · 178 阅读 · 0 评论 -
设计模式笔记—桥接模式
桥接模式 概念:将抽象部分与实现部分分离,使它们都可以独立地进行变化。它也称为桥梁模式,属于结构型设计模式。 使用场景: 1)不希望或不适用使用继承的场景。例如继承层次过渡,无法更细化设计颗粒等场景,需要考虑使用桥梁模式。 2)接口或抽象类不稳定的场景。 3)重用性要求较高的场景。设计的颗粒度越细,原创 2018-02-07 12:08:25 · 192 阅读 · 0 评论 -
设计模式笔记—接口隔离原则
接口隔离原则 概念:英文全称是InterfaceSegregation Principles(ISP)。ISP的定义是:客户端不应该依赖它不需要的接口。另一种定义:类间的依赖关系应该是建立在最小的接口上。接口隔离原则意图是将庞大,臃肿的接口拆分成更小的和更具体的接口,这样客户将只需要根据他们的需求选择特定的接口。该原则的目的是系统解开耦合,从而容易重构,更改和重新部署。简单来说,就是接口原创 2018-01-24 14:09:10 · 196 阅读 · 0 评论 -
设计模式笔记—模板方法模式
概念 定义一个操作中的算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 使用场景 1)多个子类有公有的方法,并且逻辑基本相同时。 2)重要,复杂的算法,可以把核心算法设计为模板方法,周边的相关细节功能则由各个子类实现。 3)重构时,模板方法模式是一原创 2018-01-31 10:33:42 · 152 阅读 · 0 评论 -
适配器模式
1. 概述 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。2. 解决的问题 即Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。3. 模式中的角色 3.1 目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。转载 2016-05-10 09:35:24 · 237 阅读 · 0 评论 -
工厂方法
含义:定义一个用于创建对象的接口,让子类决定实例化哪一个类。FactoryMethod使一个类的实例化延迟到其子类。适用性: 1.当一个类不知道它所必须创建的对象的类的时候。 2.当一个类希望由它的子类来指定它所创建的对象的时候。 3.当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。参与者:1.P原创 2016-10-08 21:56:15 · 273 阅读 · 0 评论 -
装饰模式笔记
1. 装饰模式介绍 装饰模式也称包装模式,结构型设计模式之一,其使用一种对客户端透明的方式来动态地扩展对象的功能,同时它也是继承关系的一种替代方案之一。现实生活中,你能看到很多装饰模式的例子,比如说人需要各式各样的衣着,不管你穿着什么样的衣物,对于个人的本质来说是不变的,充其量只是在外面披上一层遮羞物而已,这也是装饰模式。2.装饰模式的定义 动态地给一个对原创 2017-05-20 18:19:21 · 231 阅读 · 0 评论 -
设计模式笔记—开闭原则
开闭原则 概念:英文名称是Open Close Principle,缩写是OCP,,软件中的对象(类,模块,函数等)应该对于扩展是开放的,但是,对于修改是封闭的。意思是尽量减少对以前代码的修改。理由:在软件的生命周期内,因为变化,升级和维护等原因需要对软件原有代码进行修改时,可能会将错误引入原本已经经过测试的旧代码中,破坏原有 的系统。因此,当软件需要变化时,我们应该尽量通过扩展的方原创 2018-01-20 22:44:04 · 165 阅读 · 0 评论 -
设计模式笔记—里氏替换原则
里氏替换原则 概念:英文全称是Liskov Substitution Principle,缩写是LSP.第一种定义是:如果对每一个类型为S的对象s1,都有类型T定义的t2,使得以T定义的所有程序P在所有的对象s1都代换成t2时,程序P的行为没有发生变化,那么类型S是类型T的子类型。第二种定义:所有引用基类的地方必须能透明地使用其子类的对象。 面向对象语言的三大特原创 2018-01-22 15:51:06 · 230 阅读 · 0 评论 -
设计模式笔记—依赖倒置原则
依赖倒置原则 概念:英文全称是Dependence Inversion Principle(DIP),依赖倒置原则指代了一种特定的解耦形式,使得高层次(指调用端)的模块不依赖于低层次(具体实现类)的模块的实现细节的目的,依赖模块被颠倒了。该原则有以下几个关键点:(1)高层模块不应该依赖低层模块,两者都应该依赖其抽象;(2)抽象不应该依赖细节;(3)细节不应该依赖抽象。java语言中原创 2018-01-23 17:11:59 · 159 阅读 · 0 评论