
设计模式
youngyang的博客
一只快乐的后端开发程序猿,Java爱好者,欢迎大家多多指教,互相学习!!
展开
-
一文读懂设计模式--适配器模式
概述Adapter pattern 适配器模式:将一个类的接口转换成客户希望的另一个接口,适配器模式让那些接口不兼容的类可以一起工作。上边定义说到的接口只是一个抽象的表示,可以是接口,也可以是类,也可以是对象。所以适配器模式包括三类:对类的适配、对对象的适配和对接口的适配。想要使用适配者设计模式,那么必须包括下边几个基本部分:源类:系统原有的实现,被适配的角色。适配者类:中介类,将原有的实现转换成目标实现目标类:所期望的目标类。因为Java是单继承,所以就要求目标类是一个接口。那么我们什原创 2020-07-20 16:39:38 · 187 阅读 · 2 评论 -
一文读懂设计模式--策略模式
编写代码的时候,需要满足开闭原则,我们想要增加新的功能不能去改变源码,而应该在之前的基础上进行扩展。加入客户有了新的需求,我们应该使用扩展的方式实现。概述策略模式,又叫算法簇模式,就是定义了不同的算法族,并且之间可以互相替换,此模式让算法的变化独立于使用算法的客户。设计原则是把一个类中经常改变或者将来可能改变的部分提取出来,作为一个接口然后在类中包含这个对象的实例,这样类的实例在运行时就可以随意调用实现了这个接口的类的行为。使用策略模式可以实现:在不同的环境下可以有不同的执行方法,原理是使用多态来原创 2020-07-20 11:57:02 · 211 阅读 · 0 评论 -
基于枚举的单例设计模式
创建单例的方式有很多,比如饿汉式、懒汉式、DCL(双重检索机制)以及我们今天讲的枚举方式。其中只有枚举方式的单例不会被破坏,其他方式都能够使用反射或者序列化的方式破坏单例。接下来先看看如何破坏,再讲今天的重头戏枚举方式创建单例对象。如何破坏系统的单例拿最简单的饿汉式单例模式举例,基于饿汉式的单例如下:/** * @author xxy * @date 2020/7/18 */public class Singleton { private static Singleton s原创 2020-07-18 17:18:01 · 460 阅读 · 0 评论 -
一文读懂设计模式--装饰者模式
装饰者模式可以给已经存在的对象基础上动态的增强,也就是再不改变之前源码的基础上进行增强。满足开闭原则。装饰者模式实现假设我们想定义一个接口实现人的吃饭功能:之后定义一个被装饰的子类对象:这样就能实现一个人吃麻辣香锅的功能了。测试如下:执行结果:但是如果我们想改变之前的逻辑,一个人在吃饭的时候还要喝啤酒呢?难道我们要去修改Man类的eat()方法吗?难道每次在修改逻辑添加功能的时候都要去修改之前的源码吗?这显然不满足开闭原则。如何更加优雅的在不改变源码的基础上修改之前的功能呢?这就要用到原创 2020-07-20 11:08:25 · 300 阅读 · 0 评论