设计模式
设计模式详解
Jzen_
这个作者很懒,什么都没留下…
展开
-
工厂方法模式
一、介绍 工厂方法模式(Fatory Method Pattern)是指定义一个创建对象的接口,但让实现这个 接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行。属于创建型模式,23中设计模式之一,在工厂方法 模式中用户只需要关心所需产品对应的工厂,无须关心创建细节,而且加入新的产品符 合开闭原则。 工厂方法模式其实就是简单工厂模式的一个拓展,只是将工厂接口化,具体的实现让实现类决定。 二、代码实现(示例) 1、示例背景:一个时间管理者拥有多个女朋友,那么他要记住每个女朋友的名字,每天晚上根据原创 2020-07-10 16:46:02 · 201 阅读 · 0 评论 -
简单工厂模式
一、介绍 简单工厂模式(Simple Factory Pattern)是指由一个工厂对象决定创建出哪一种产品类 的实例。属于创建型模式,但它不属于 GOF,23 种设计模式。 二、适用场景 1、适用 于工厂类负责创建的对象较少的场景, 2、且客户端只需要传入工厂类的参数,对于如何创 建对象的逻辑不需要关心。 三、作用 根据不同的情景(参数)创建不同的对象。 四、缺点 1、工厂类的职业相对过重,增加新的产品时需要修改工厂类的判断逻辑,违背开闭原则。 2、不易于扩展过于复杂的产品结构。 五、代码实现(示例) 1原创 2020-07-10 16:45:25 · 273 阅读 · 0 评论 -
静态代理模式
1、以一个生活中的例子来解释静态代理模式:到了一定的年龄,我们就要结婚,结婚是一件很麻烦的事情,(包括那些被父母催婚的)。有钱的家庭可能会找司仪来主持婚礼,显得热闹,洋气~好了,现在婚庆公司的生意来了,我们只需要给钱,婚庆公司就会帮我们安排一整套结婚的流程。整个流程大概是这样的:家里人催婚->男女双方家庭商定结婚的黄道即日->找一家靠谱的婚庆公司->在约定的时间举行结婚仪式->结婚完毕。婚庆公司打算怎么安排婚礼的节目,在婚礼完毕以后婚庆公司会做什么,我们一概不知,我们只要把钱给人家,原创 2020-07-09 20:21:30 · 122 阅读 · 0 评论 -
动态代理模式
一、动态代理的好处 动态代理:其实动态代理与静态代理的本质一样,最终程序运行时都需要生成一个代理对象实例,通过它来完成相关增强以及业务逻辑,只不过静态代理需要硬编码的方式指定,而动态代理则是以动态方式生成代理(有编译时操作字节码生成的方式、以及运行时通过反射、字节码生成的方式)。动态生成的好处很明显,代理逻辑与业务逻辑是互相独立的,没有耦合,代理1个类100个类没有任何区别。 二、动态代理例子(便于理解) 到了饭点了,有两个用户都需要买菜,小姜要买青菜,小鑫要买萝卜,他们下单,骑手接收到订单之后去到超时给他原创 2020-07-09 20:15:51 · 139 阅读 · 0 评论 -
装饰者模式
1、装饰者模式的作用: 对已有的业务逻辑进一步的封装,使其增加额外的功能,如Java中的IO流就使用了装饰者模式,用户在使用的时候,可以任意组装,达到自己想要的效果。 举个栗子,我想吃三明治,首先我需要一根大大的香肠,我喜欢吃奶油,在香肠上面加一点奶油,再放一点蔬菜,最后再用两片面包夹一下,很丰盛的一顿午饭,营养又健康。(ps:不知道上海哪里有卖好吃的三明治的,求推荐~)那我们应该怎么来写代码呢? 首先,我们需要写一个Food类,让其他所有食物都来继承这个类。 2、代码实现: public class Fo原创 2020-07-08 17:54:32 · 152 阅读 · 0 评论 -
适配器模式
1、适配器模式的作用: 将两种完全不同的事物联系到一起,就像现实生活中的变压器。假设一个手机充电器需要的电压是20V,但是正常的电压是220V,这时候就需要一个变压器,将220V的电压转换成20V的电压,这样,变压器就将20V的电压和手机联系起来了。 2、代码实现: public class Test { public static void main(String[] args) { Phone phone = new Phone(); VoltageAdapter ad原创 2020-07-08 17:53:42 · 107 阅读 · 0 评论 -
观察者模式
1、模式动机及定义: 建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应做出反应。在此,发生改变的对象称为观察目标,而被通知的对象称为观察者,一个观察目标可以对应多个观察者,而且这些观察者之间没有相互联系,可以根据需要增加和删除观察者,使得系统更易于扩展,这就是观察者模式的模式动机。 观察者模式(Observer Pattern):定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。观察者模式又叫做发布-订阅(Publis原创 2020-07-08 17:53:02 · 186 阅读 · 0 评论 -
单例模式
1、单例模式的介绍: 单例模式(Singleton),也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了在复杂环境下的配置管理。 2、实现单例模式的思路是: 一个类能返回对象一个引用(永远是同一个)和一个获得该实例的方法原创 2020-07-08 17:51:20 · 141 阅读 · 0 评论