设计模式
夏侯_瑾轩
不积跬步无以至千里,不积小流无以成江海
展开
-
原型设计模式(浅克隆和深克隆)
原型模式用于创建重复对象并且保证性能,它属于是一种创建型的设计模式,提供了一种创建对象的最佳方式。该设计模式用于实现一个原型接口,该接口用于创建当前对象的克隆对象。应用实例场景: 可以想象成细胞分裂、克隆羊多利、孙悟空拔一根猴毛,吹出千万个。首先我们有一个要被克隆的原始 羊 这个类如下:public class Sheep implements Cloneable{ private Stri...原创 2018-03-07 19:37:34 · 1519 阅读 · 0 评论 -
模板方法设计模式
在模板模式中,抽象类公开定义了执行它的方式/模板,然后在其子类中进行具体的实现。‘可以理解为 抽象类定义了一套做事情的规则,而具体的类去实现这套规则中的具体步骤。关键代码在抽象类当中进行实现,而具体的代码则在具体的类中再实现。应用案例:说,要把大象装冰箱,需要分为三个步骤。第一:把冰箱门打开 第二:把大象装进去 第三:关上冰箱门首先定义一个抽象类来定义这个规则,代码如下:AbstractMode...原创 2018-03-07 22:51:48 · 172 阅读 · 0 评论 -
代理设计模式(普通静态代理、JDK动态代理、cglib动态代理)
1、普通静态代理:代理设计模式:代理设计模式中,一个类代表另外一个类的功能,这种类型的设计模式属于结构性设计模式。 对于被代理人来讲,这件事情是一定要去做的,但是我自己又不想做或者没有时间做,则需要找代理。 当我们想要对一个类的访问做出一些个控制,这个时候我们就要使用代理设计模式。代理设计模式的使用场景:西游记的案例:猪八戒要去高老庄找高翠兰小姐,但是找到的确是孙悟空变化成的高翠兰。这...原创 2018-03-04 21:42:25 · 242 阅读 · 0 评论 -
单例设计模式
1、单例设计模式之懒汉式//单例设计模式懒汉式//为什么叫做懒汉式呢,因为一开始并没有对象,只有当需要的时候才创建出来一个对象class Singleton{ private static Singleton instance; //构造方法私有化 private Singleton() { super(); //this.name = name; } //这个就是...原创 2018-03-02 16:11:40 · 143 阅读 · 0 评论 -
三种工厂设计模式 分别是:简单工厂设计模式、抽象工厂方法设计模式、工厂方法设计模式
1、简单工厂方法设计模式:工厂模式:工厂设计模式(Factory Pattern)是java当中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象的时候不会对客户端暴露创建逻辑,而是通过一个共同的接口来指向新创建的对象。介绍:意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类中进行。主要...原创 2018-01-30 10:45:46 · 456 阅读 · 0 评论 -
策略模式
策略模式,可以理解为做一件事情的不同的方法,不同的算法,比如说今天您去商店(超市)买物品,这个时候您有多种付款方式,您可以选择使用支付宝支付或者是微信支付,如果可能的话也有可能用上 paypal 支付。 策略模式,就是一个接口把方法定义出来,然后不同的类去实现接口中的这个方法,每个类的方法中的算法都不大一样,而且在使用的过程中,我们可以自由的相互替换不同的策略。在这里,先定义一个支付的接口,然后不...原创 2018-03-20 17:56:08 · 194 阅读 · 0 评论 -
适配器模式
适配器模式分为三种适配器,分别是:1、类适配器2、对象适配器3、接口适配器适配器模式使为了解决本因接口不匹配而不能一起工作的两个类使得它可以一起协同工作。1、类适配器 例子:充电器给手机充电的例子,这里我们(充电过程的)源对象src是220V的电源插座, 而输出给手机的目标对象Dest是 手机,大概3.6V 这里要将220V的电压适配成3.6V 代码...原创 2018-03-21 11:30:12 · 136 阅读 · 0 评论 -
装饰器模式
装饰器设计模式,顾名思义,就是在不改变原有类的基础上把现有的类进行功能的扩充,装饰器设计模式的功能其实继承也能够实现,这里相比于继承,装饰器模式要比继承要灵活,避免了继承体系之间的臃肿,降低了类与类之间的关系。类体系如下:这里 Car 是一个接口,有一个实现类,MyCar,mycar里面有run方法,右边的是 DecorateCar,里面存着一个 MyCar的对象,所以能对MyCar的实体进行...原创 2018-03-21 12:57:46 · 155 阅读 · 0 评论