设计模式
设计模式
-夏夜凉月-
最近在把博客里面的内容进行系统的整理,平常比较懒,没怎么写博客,趁最近有时间,做一个系统的整理,进行查漏补缺,如有不正确的望大家指正,笔者每个例子都经过测试,力争不误人子弟。
展开
-
设计模式——命令模式
引言网上有很多介绍设计模式系列的优秀文章,看懂不一定是真懂,能写出来,说出个1、2、3点才算是真的懂了,如果能灵活的应用到工作中才算是真的熟练。1、模式场景电视机遥控器,按开、关键就可以控制电视的开启和关闭。2、模式结构Command: 抽象命令类(模拟场景中开、关键命令抽象类)ConcreteCommand: 具体命令类(模拟场景中的开、关命令)Invoker: 调用者(模拟场景中的遥控器)Receiver: 接收者(模拟场景中的电视机)3、示例代码3.1、抽象命令类publi原创 2020-06-22 18:06:31 · 228 阅读 · 0 评论 -
设计模式——代理模式
引言网上有很多介绍设计模式系列的优秀文章,看懂不一定是真懂,能写出来,说出个1、2、3点才算是真的懂了,如果能灵活的应用到工作中才算是真的熟练。1、模式场景记录不同的动物,比如小狗、小猫吃饭、睡觉、玩耍的时间。2、模式结构Subject: 抽象角色(模拟场景中的动物)Proxy: 代理角色(模拟场景中的动物代理)RealSubject: 真实角色(模拟场景中的小狗、小猫)3、示例代码3.1、抽象角色public interface Animal { void eat() t原创 2020-06-21 21:45:04 · 201 阅读 · 0 评论 -
设计模式——外观模式
引言网上有很多介绍设计模式系列的优秀文章,看懂不一定是真懂,能写出来,说出个1、2、3点才算是真的懂了,如果能灵活的应用到工作中才算是真的熟练。1、模式场景餐馆里面只要跟接待员说:来一份鱼香肉丝。服务员会把这道菜端到你面前,至于中间的下单、烹饪、上菜等细节,我们并不关心。2、模式结构Facade: 外观角色(模拟场景中的接待员)SubSystem:子系统角色(模拟场景中下单、烹饪、上菜服务)3、示例代码3.1、外观角色public class Receptionist { pri原创 2020-06-21 18:11:19 · 223 阅读 · 0 评论 -
设计模式——桥接模式
引言网上有很多介绍设计模式系列的优秀文章,看懂不一定是真懂,能写出来,说出个1、2、3点才算是真的懂了,如果能灵活的应用到工作中才算是真的熟练。1、模式场景现在需要开发一个跨平台的视频播放器,在Linux、Windows平台上面都能播放Mp4、AVL格式的视频。2、模式结构CoolSummerMoonPlayer:抽象类(模拟场景中视频播放器)LinuxPlayer、WindowsPlayer:扩充抽象类(模拟场景中Linux、Windows平台)Media:实现类接口(模拟场景中播放器格式原创 2020-06-21 11:37:57 · 248 阅读 · 0 评论 -
设计模式——适配器模式
引言网上有很多介绍设计模式系列的优秀文章,看懂不一定是真懂,能写出来,说出个1、2、3点才算是真的懂了,如果能灵活的应用到工作中才算是真的熟练。1、模式场景手机充电器的数据线有typec、usb等类型,我们分别模拟一个usb适配器和typec的适配器。2、模式结构目标抽象类 Target(对应模拟场景中的充电器)适配器类 Adapter(对应模拟场景中usb适配器、typec适配器)适配者类 Adaptee(对应模拟场景中usb、typec数据线)客户类 Client(对应模拟场景中手机充原创 2020-06-20 22:34:55 · 211 阅读 · 0 评论 -
设计模式——单例模式
引言网上有很多介绍设计模式系列的优秀文章,看懂不一定是真懂,能写出来,说出个1、2、3点才算是真的懂了,如果能灵活的应用到工作中才算是真的熟练。1、模式场景定义系统中一个唯一的ID生成器。2、模式结构Singleton:单例定义一个类只有一个实例,该实例向整个系统提供服务。3、示例代码3.1、单例public class IDSingleton { private AtomicLong atomicLong = new AtomicLong(0); private sta原创 2020-06-20 17:58:08 · 178 阅读 · 0 评论 -
设计模式——建造者模式
引言网上有很多介绍设计模式系列的优秀文章,看懂不一定是真懂,能写出来,说出个1、2、3点才算是真的懂了,如果能灵活的应用到工作中才算是真的熟练。1、模式场景汽车的构造是复杂的,整车包括车架、车轮、发动机等。消费者无需关心汽车的构造细节,只需告诉厂商想要奔驰还是宝马,提车的时候,就可以提取相应的车。2、模式结构1、Builder:抽象建造者定义构造的类型和流程,对应模式场景中车的组装过程。2、ConcreteBuilder:具体建造者定义具体构造流程的实现,对应模式场景中奔驰车、宝马车组装过程原创 2020-06-20 11:44:08 · 227 阅读 · 0 评论 -
设计模式——工厂模式
引言网上有很多介绍设计模式系列的优秀文章,看懂不一定是真懂,能写出来,说出个1、2、3点才算是真的懂了,如果能灵活的应用到工作中才算是真的熟练。1、模式场景我们上学的时候经常去文具店买笔,现在需要买铅笔、钢笔、彩笔,有一种选择是分别去铅笔专卖店,钢笔专卖店,彩笔专卖店买到对应的笔。2、模式结构1、抽象产品类:Product(对应模式场景中的笔)抽象产品是所有实例公有的父类接口。2、具体产品类:ConcreteProduct(对应模式场景中具体的铅笔、钢笔、彩笔等)实现抽象产品类的具体产品类实原创 2020-06-19 20:31:54 · 203 阅读 · 0 评论 -
设计模式——简单工厂模式
引言网上有很多介绍设计模式系列的优秀文章,看懂不一定是真懂,能写出来,说出个1、2、3点才算是真的懂了,如果能灵活的应用到工作中才算是真的熟练,博主写这个系列主要是加深自己的理解,如有错误的地方,请大家留言指正。1、模式场景我们上学的时候经常去文具店买笔,进店之后,我们只需要说出笔的类型:铅笔、钢笔、彩笔等,售货员就递给我们需要的笔。2、模式结构1、工厂类:Factory(对应模式场景中的售货员)工厂类负责创建所有实例的内部逻辑。2、抽象产品类:Product(对应模式场景中的笔)抽象产品是原创 2020-06-19 16:51:43 · 190 阅读 · 0 评论