![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 85
mokingone
去做你害怕的事,害怕自然就会消失。这个世界什么都有,唯独没有捷径,世界上很多酷炫的东西,底层逻辑都是靠时间堆积出来的。
展开
-
工厂模式
目标主要是Car为例来学习工厂模式主要是自己学习的一个记录 以前设计模式也仔细研究过没有进行整理,虽然也放在github上 已经是很久之前的事情了,这次刚好跟着课程,重新学习重新整理。简单工厂模式定义 提供一个创建对象实例的功能,而无须关心其具体实现。被创建实例的类型可以是接口,抽象类,也可以是具体的类。本质 选择实现实例下面以汽车car)为例:public interface Car { ...原创 2018-03-08 12:16:41 · 313 阅读 · 1 评论 -
外观模式(Facade)
1. 定义 为子系统中的一组接口提供一个一致的界面,Facade 模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。2.外观模式的结构 - Facade:定义子系统的多个模块对外的高层接口,通常需要调用内部多个模块,从而把客户的请求代理给适当的子系统对象。 - 模块:接受Facade对象的委派,真正实现功能,各个模块之间可能有交互。 - Client:通...原创 2018-03-27 17:32:40 · 284 阅读 · 0 评论 -
中介者模式(Mediator)
1. 定义 用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。2.结构Mediator:中介者定义一个接口用于与各同事(Colleague)对象通信。ConcreteMediator:具体中介者通过协调各同事对象实现协作行为,了解并维护它的各个同事。Colleague:抽象同事类。Conc...原创 2018-04-09 11:06:56 · 445 阅读 · 0 评论 -
适配器模式
1. 适配器模式的结构和说明 将一个类的接口转换成客户希望的另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。2. 适配器模式的结构和说明类的适配器模式(采用继承实现) 对象适配器(采用对象组合方式实现) Client:客户端,调用自己需要领域的接口Target:定义客户端需要的跟特定领域有关的接口Adaptee:已经存在的接口,...原创 2018-03-20 17:41:26 · 209 阅读 · 0 评论 -
观察者模式(Observer)
1. 定义 定义对象间的一种一对多的依赖关系。当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。2. 结构Subject:目标对象,通常具有如下功能能。 a. 一个目标可以被多个观察者观察 b. 目标提供对观察者注册和退订的维护 c. 当目标对象的状态发生变化时通知所有注册的有效观察者。Observer:定义观察者的接口,提供目标通知时对相...原创 2018-03-23 17:42:09 · 259 阅读 · 0 评论 -
委派模式
1. 定义 不属于 23 种设计模式之一,是面向对象设计模式中常用的一种模式. 这种模式的原理为类B和类A是两个互相没有任何关系的类,B具有和A一模一样的方法和属性;并且调用B中的方法,属性就是调用A中同名的方法和属性。B好像就是一个受A授权委托的中介。第三方的代码不需要知道A的存在,也不需要和A发生直接的联系,通过B就可以直接使用A的功能,这样既能够使用到A的各种公能,又能够很好的...原创 2018-03-20 09:58:15 · 259 阅读 · 0 评论 -
模板方法模式
1. 定义 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。2. 模板方法模式的结构 - AbstractClass : 抽象类,用来定义算法骨架和原语操作,具体的子类通过重定义这些原语操作来实现一个算法的各个步骤。在这个类里,还可以提供算法中通用的实现。 - ConcreteClass:具体的...原创 2018-03-19 17:01:56 · 217 阅读 · 0 评论 -
代理模式
定义 为其他对象提供一种代理以控制对这个对象的访问。本质 控制对象访问实例 以歌星为例:歌星的合作过程 面谈,签合同,唱歌,收尾款 其实有些步骤不需要明星亲自去做 比如面谈,签合同,收尾款。明星只需要唱歌即可。其他交由经纪人去做!静态代理实现:Star 歌星/** * 歌星 * @author lijun * @since 2018-03-12 14:12 *...原创 2018-03-13 13:16:44 · 289 阅读 · 0 评论 -
装饰模式(Decorator)
1. 定义 动态的给一个对象添加一些额外的职责。就增加功能来说,装饰模式比生成子类更为灵活。2. 结构 - Component:组件对象的接口,可以给这些对象动态添加职责。 - ConcreteComponent:具体的组件对象,实现组件对象接口,通常就是被装饰的原始对象,也就是可以给这个对象添加职责。 - Decorator:所有装饰器的抽象父类,需要定义一个与组件接口一...原创 2018-03-22 13:55:17 · 218 阅读 · 0 评论 -
原型模式
定义 原型模式就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。本质 克隆生成对象实例 以下已用户的原型来做学习。所谓原型模式,就是java中的克隆技术,以某个对象为原型。复制出新的对象。显然新的对象具备原型对象的特点。效率高(避免了重新执行构造过程步骤)克隆类似于new,但和new不同。new创建新的对象属性采用的是默认值。克隆出来的对象的属性值完全和原型对象相同。并...原创 2018-03-11 22:22:22 · 225 阅读 · 0 评论 -
策略模式
1. 定义 定义一系列算法,把他们一个个封装起来,并且使他们可以互相替换。本模式使得算法 可以独立于使用它的客户而变化。2. 策略模式的结构Strategy : 策略接口,用来约束一系列具体的策略算法。Context使用这个接口来调用具体的策略实现定义的算法ConcreteStrategy:具体的策略实现,也就是具体的算法实现。Context:上下文,负责和具...原创 2018-03-16 15:32:46 · 229 阅读 · 0 评论 -
单例模式
定义 保证一个类仅有一个实例,并且提供一个访问它的全局访问点。本质 控制实例数量实例 我们在开发项目中经常用到读取配置文件 配置文件里面的配置多少公用的,整个项目都会使用,我们经常会把他做成一个工具类使用。如果不考虑单例模式的话实现如下:SystemConfigpublic class SystemConfig { /** * 类型 */ private Str...原创 2018-03-09 10:41:47 · 287 阅读 · 0 评论 -
生成器模式(Builder)
1. 定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。2.结构 - Builder:生成器接口,定义创建一个Product对象所需要的各个部件的操作。 - ConcreteBuilder:具体的生成器实现,实现各个部件的创建,并负责组装Product对象的各个部件,同时还提供一个让用户获取组装完成后的产品对象的方法。 - Director...原创 2018-03-29 16:16:55 · 5312 阅读 · 0 评论