![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式DesignPattern
江小帅
支持原创
展开
-
设计模式(DesignPattern)之单例模式(SingleTon)
1、定义 单例模式属于创建型模式,确保一个类只有一个实例,并提供一个全局的访问接口。2、使用场景 在开发工程中,有些对象我们只需要一个:线程池、缓存、硬件设备等, 创建多个实例则会造成结果的不一致和资源的过多消耗。3、UML类图4、经典的实现方式1、懒汉模式/** * 懒汉模式 */public class Sin...原创 2018-03-25 11:05:47 · 234 阅读 · 0 评论 -
设计模式(DesignPattern)之工厂模式(Factory)
1、定义 定义一个创建对象的接口,由子类决定去实例化具体的类,工厂方法把实例化推迟到了子类中。2、关键点 在需要创建大量对象的时候可以使用工厂方法模式,遵循依赖倒置原则,依赖抽象接口,不依赖具体类,能够很好的减少客户端与目标类之间的耦合问题。3、UML类图4、代码实现1、工厂方法模式实现/** * 水果接口 */public interface IFruit {...原创 2018-05-01 23:34:01 · 688 阅读 · 0 评论 -
设计模式(DesignPattern)之装外观模式(Facade)
1、定义 提供一个统一的接口,用来访问子系统的一群接口,外观模式定义了一个高层接口,让子系统更容易使用。2、关键点 ① 当需要简化并统一一个很大的接口或者一群复杂的接口时,使用外观模式。 ② 外观模式将客户端从一个复杂的子系统中接口。 ③ 实现外观模式,需要将子系统组合进外观中,然后将具体操作委托给子系统。3、UML类图4、代码实现 /...原创 2018-04-30 22:18:01 · 172 阅读 · 0 评论 -
设计模式(DesignPattern)之装饰者模式(Decorator)
1、定义 动态的将新功能附加到对象上,在功能扩展的时候,它比继承更加灵活。2、使用场景 需要动态的扩展类的功能,当成继承的一种替代方案。3、UML类图4、代码实现/** * 抽象组件,所有的装饰者都是Component类型 */public interface Component { void operate();}/** * 具体组件,被装饰...原创 2018-04-30 17:34:07 · 204 阅读 · 0 评论 -
设计模式(DesignPattern)之适配器模式(Adapter)
1、定义 适配器模式简单来说就是将一个接口转换成另一种接口,从而让原本不兼容的接口能够兼容。 从用户的角度感觉不到被适配者,实现了解耦,用户调用适配器转换出来的接口方法,适配器再调用被适配接口的相关方法,被适配的接口对于用户来说是透明,用户也无需关心被适配的接口。2、使用场景 ① 对于不兼容类型的接口进行转换。 ② 在输入...原创 2018-04-30 10:25:30 · 262 阅读 · 1 评论 -
设计模式(DesignPattern)之代理模式(Proxy)
1、定义 代理模式也称为委托模式,为一个对象提供一个代理对象,以此来控制被代理对象的访问,简单来说就是代理对象代替被代理对象来完成一些事情。 代理模式一般分为静态代理和动态代理: 静态代理:代理类在代码编译以前就已经存在。 动态代理:运行时动态的创建代理对象,可以很灵活的代理自己想要代理的对象,通过反射机制来实现。2、使用...原创 2018-04-13 00:16:56 · 357 阅读 · 0 评论 -
设计模式(DesignPattern)之模板方法模式(Template)
1、定义 封装了一个算法的具体步骤,并允许其中的一个或者多个步骤延迟到子类中去实现。模板方法模式可以在不改变算法结构的情况下,重新定义算法中的某些步骤。2、使用场景 多个子类有公有的方法,并且基本逻辑相似,对于重复的逻辑可以进行抽象封装成模板方法,不同的子类去实现具体的存在差异的相关逻辑。简单来说就是在父类中封装重复的逻辑,存在差异的部分由子类具体实现。3、UML类图 ...原创 2018-04-08 22:31:15 · 198 阅读 · 0 评论 -
设计模式(DesignPattern)之策略模式(Stragety)
1、定义 分别封装行为接口,超类存放行为接口对象,在子类里设定具体的行为对象,换句话说,就是定义了一系列行为的接口,在使用者的超类中持有此接口类型的对象,在具体的使用者设置具体的行为对象,达到使用不同策略的目的。2、使用场景 1、针对同一种问题有不同的解决方式,不同的解决方式之间可以互换,不会造成影响。 2、当出现if-else判断语句来选...原创 2018-04-08 21:34:23 · 445 阅读 · 0 评论 -
设计模式(DesignPattern)之创建者模式(Builder)
1、定义 Bulder模式属于创建型模式,封装一个复杂对象的创建过程,并允许按步骤2、使用场景 创建复杂的对象,如需要创建的对象有很多参数。3、UML类图 4、代码实现public class Computer { /** * Computer的品牌...原创 2018-03-25 16:44:48 · 341 阅读 · 0 评论 -
设计模式(DesignPattern)之观察者模式(Observable)
1、定义 观察者模式的重要作用就是解耦,定义对象之间一对多的依赖关系,被依赖对象为Subject,依赖对象为Observer,Subject通知Observer更新状态。2、使用场景跨系统的消息交换,如消息队列,事件总线的处理机制。 事件多级触发。 关联的行为。3、UML类图4、代码实现 5、总结 优点:观察者和被观察者之间依赖于Observer和Obse...原创 2018-10-07 16:18:50 · 208 阅读 · 0 评论