适配器模式 定义 适用场景 案例一:220V和5V 交流电的转换 UML类图 代码实现 案例二:多平台登录注册功能 UML类图 代码实现 在源码中的体现 Spring-AOP 的 AdvisorAdapter Spring-Web 的 HandlerAdapter 适配器模式的优点 适配器模式的缺点 定义 适配器模式(Adapter Pattern)是指将一个类的接口转换成客户期望的另一个接口,使...

将一个对象的创建移到里一个类里面了。 简单工厂模式又称为静态工厂方法,属于创建型模式。在简单工厂模式中,可以根据传递的参数不同,返回不同的实例。简单工厂模式定义了一个类,这个类专门用于创建其他类的实例,这些被创建的类都有一个共同的父类。 简单工厂模式的UML图 简单工厂模式的优点: 实现了堆责任的分割,提供了专门的工厂类用于创建对象。 客户端无需知道所创建的具体的产品的类名,只需要知道具体产品类对...

设计模式之模板模式: 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 我们将创建一个定义操作的 Game 抽象类,其中,模板方法设置为 final,这样它就不会被重写。BasketballGame和 FootballGame 是扩展了 Game 的实体类,它们重写了抽象类的方法。 创建抽象类Game: public a...

设计模式之策略模式 在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象 定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。 主要解决:在有多种算法相似的情况下,使用 if…else 所带来的复杂和难以维护 创建Strategy接口: public interface Strategy { void doOperation(i...

设计模式之工厂模式 工厂模式: 创建过程: 创建Shape接口 public interface Shape { void draw(); } 创建实现类: public class Circle implements Shape { @Override public void draw() { System.out.println(“this is a circle!”)...

文章目录 工厂模式介绍 1、简介: 2、什么情况下使用: 三类工厂模式 1、简单工厂模式: 2、工厂方法模式 3、抽象工厂模式 Spring IOC和工厂模式的对比 用Spring IOC实现工厂模式DEMO(优化抽奖活动配置) 扩展-设计模式的分类 工厂模式介绍 1、简介:   工厂模式是属于23种设计模式中的一种常用的创建型模式(另外两种:结构型、行为型),它提供了一种创建...

目录 //1.简单工厂 //2.工厂方法 //3.抽象工厂 //4.策略模式 //5.装饰模式 //6.模板方法 //7.门面模式 //8.适配器模式 //9.观察者模式 //10.建造者模式 //11.组合模式 //12.单例模式 //1.简单工厂     //2.工厂方法     //3.抽象工厂     //4.策略模式  ...

标准定义 使用方式 抽象出一个处理类父类,提取公有方法和属性。 责任链模式中的处理类实现 测试 Tomcat中责任链模式使用 客户端请求通过Tomcat中connector封装后交给Container处理,而Container中处理请求的方式就是通过责任链模式。Container下有Engine、Host、Context、Wrapper四个子容器,这四个子容器通过pipline-valve形成链条...

介绍 作用 创建者与调用者分离。 优点 一个调用者想创建一个对象,只要知道其名称就可以了。 扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。 屏蔽产品的具体实现,调用者只关心产品的接口。 缺点 每次增加一个产品时,都需要增加一个具体类和对象实现工厂,使得系统中类的个数成倍增加,在一定程度上增加了系统的复杂度,同时也增加了系统具体类的依赖。 实现 创建接口 创建工厂类 创建实体类 创建顾客...

1.定义 用树状结构来组合对象,表示整体-部分的层次结构 提供统一的方法来访问对象,忽略对象与对象集合之间的差别 2.UML类图 角色介绍 AbstractComponent : 抽象根节点,定义统一的访问接口 Leaf : 具体叶子节点 Composite : 具体枝干节点 要点 涉及到递归访问 3.UML示例代码 4.总结 真正需要使用此设计模式的场景相对较少,作为了解。...

策略模式 文章目录 策略模式 概念 介绍 实现 概念 策略设计模式就是定义算法簇并封装起来,上他们之间可以互相代替,此模式让算法的变化独立于使用算法的客户。 介绍 意图 :定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。 主要解决:在有多种算法相似的情况下,使用 if…else 所带来的复杂和难以维护。 何时使用:一个系统有许多许多类,而区分它们的只是他们直接的行为。...

定义 允许一个对象在内部状态变化时改变它的行为,类似于改变类 结构 Context: 环境类 State: 抽象状态类 ConcreteState: 具体状态类 优点 枚举可能的状态,在枚举状态之前需要确定状态种类。 将所有与某个状态有关的行为放到一个类中,并且可以方便地增加新的状态,只需要改变对象状态即可改变对象的行为。 允许状态转换逻辑与状态对象合成一体,而不是某一个巨大的条件语句块。 缺点 ...

对一个对象的功能进行扩展,不用改变原有状态,通过创建一个类包装之前的对象。 例题:女生爱化妆,原型是一个女生,底妆类包裹原型,画眉类包裹原型,眼影类包裹原型,口红类包裹原型,最终得到一个画了美美妆的漂亮女生了。 在HeadFirst中,原型为浓咖啡,淡咖啡,通过奶泡等一系列配料做成咖啡。也就是原型的价格不断被装饰类进行包裹,最终得到加好配料后得到最终的价格。 缺点: 会造成很多的类。...

代理模式——Proxy

设计模式

  

2019-06-01 21:22:10

终于静下心来好好做一下代理模式的笔记了。说实话,代理模式这个词对我来说又熟悉又陌生。你说陌生吧,Spring 的AOP也了解过一点;你说熟悉吧,但总感觉抓不住它的尾巴,滑不溜秋,在脑海里总没有一个确切的概念。拿来《设计模式之禅》一读,还别说,感觉理解那么一点了。所以就七分抄三分悟记一下。 文章目录 案例展示——Proxy怎么用? 深入分析——Prox...

设计模式六大原则

设计模式

  

2019-06-02 08:21:28

设计模式六大原则总结 1. 单一职责原则 单一职责原则,Single Responsibility Principle,简称SRP。 (1) 定义 应该有且仅有一个原因引起类的变更。 There should never be more than one reason for a class to change. (2) 优点 类的复杂性降低,职责定义清晰 可读性提到,复杂性降低 可维护性提高 需...