
设计模式
个人设计模式学习总结
茴香豆的茴有六种写法
这个作者很懒,什么都没留下…
展开
-
设计模式—适配器模式,装饰模式,代理模式异同
--设计模式—适配器模式,装饰模式,代理模式异同--转载 2019-05-21 16:02:32 · 3510 阅读 · 0 评论 -
装饰器模式
一、概述装饰器模式作用是针对目标方法进行增强,提供新的功能或者额外的功能。不同于适配器模式和桥接模式,装饰器模式涉及的是单方,和代理模式相同,而且目标必须是抽象的。而实际上,装饰器模式和代理模式的实现方式基本一致,只在目标的存在上有些差别,这个后面我们具体讲述。二、初步分析上面提到了两点:涉及的是单方 目标是抽象的我们来想一下,所谓单方主要指的是在整个装饰器模式中不存在...转载 2019-05-21 15:58:57 · 3458 阅读 · 0 评论 -
外观模式(门面模式)
一、概念介绍 外观模式(Facade),他隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。这种类型的设计模式属于结构性模式。为子系统中的一组接口提供了一个统一的访问接口,这个接口使得子系统更容易被访问或者使用。二、角色及使用场景 简单来说,该模式就是把一些复杂的流程封装成一个接口供给外部用户更简单的使用。这个模式中,设计到3个角色。 1).门面角色:外观模式...转载 2019-05-20 16:30:33 · 3738 阅读 · 0 评论 -
工厂模式(简单工厂+工厂+抽象工厂)
1.简单工厂所谓简单工厂方法模式,就是为目标类创建一个工厂,当有多个目标实现的时候,在这个工厂内部进行逻辑判断来根据条件创建不同的目标实例。/** * 桌子接口 */public interface Desk { String getType();}木质桌子:WoodenDesk/** * 木质桌子 */public class WoodenDesk im...转载 2019-04-30 11:33:23 · 3664 阅读 · 0 评论 -
适配器模式
首先,先来先讲讲适配器。适配就是由“源”到“目标”的适配,而当中链接两者的关系就是适配器。它负责把“源”过度到“目标”。举个简单的例子,比如有一个“源”是一个对象人,他拥有2种技能分别是说日语和说英语,而某个岗位(目标)需要你同时回说日语、英语、和法语,好了,现在我们的任务就是要将人这个“源”适配的这个岗位中,如何适配呢?显而易见地我们需要为人添加一个说法语的方法,这样才能满足目标的需要。...转载 2019-04-27 19:11:35 · 3492 阅读 · 0 评论 -
单例模式
单例模式有以下特点: 1、单例类只能有一个实例。 2、单例类必须自己自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。懒汉式和饿汉式的代码就不贴了单例模式双重锁定代码public class Singleton { private Singleton(){ } private static volatile Singleton s...原创 2019-02-17 23:29:00 · 3469 阅读 · 0 评论 -
观察者模式
关键点: 1、针对观察者与被观察者分别定义接口,有利于分别进行扩展。 2、重点就在被观察者的实现中: (1)定义观察者集合,并定义针对集合的添加、删除操作,用于增加、删除订阅者(观察者) (2)定义通知方法,用于将新情况通知给观察者用户(订阅者用户) 3、观察者中需要有个接收被观察者通知的方法。1.抽象主题角色,watched被观察...原创 2019-02-17 23:00:05 · 3427 阅读 · 0 评论 -
代理模式
原文网址: https://www.cnblogs.com/V1haoge/p/6525527.html代理模式很简单,只要记住以下关键点,简单易实现: (1)代理类与委托类实现同一接口 (2)在委托类中实现功能,在代理类的方法中中引用委托类的同名方法 (3)外部类调用委托类某个方法时,直接以接口指向代理类的实例,这正是代理的意义所在:屏蔽。静态代理:在编译...转载 2019-02-17 22:40:30 · 3463 阅读 · 0 评论 -
模版方法模式
所谓模版方式模式:把不变的行为搬到超类,去除子类中重复的代码来体现他的优势;当不变的和可变的行为在子类实现中混合在一起的时候,不变的行为就会在子类中重复实现,我们通过模板方法模式把这些行为搬移到单一的地方,这样就可以帮助子类摆脱重复不变行为的纠缠。1.超类public abstract class BaseTest { /* 问题是不变的,直接实现了 */...原创 2019-02-17 22:18:22 · 3383 阅读 · 0 评论 -
策略模式
写代码时总会出很多的if…else,或者case。如果在一个条件语句中又包含了多个条件语句就会使得代码变得臃肿,维护的成本也会加大,而策略模式就能较好的解决这个问题,本篇博客就带你详细了解策略模式。策略模式的定义和使用场景定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使他们可以相互替换,让算法独立于使用它的客户而独立变化。分析下定义,策略模式定义和封装了一系列的算法,...原创 2019-07-01 16:39:25 · 3438 阅读 · 0 评论