
设计模式
文章平均质量分 61
Wesson96
这个作者很懒,什么都没留下…
展开
-
设计模式-访问者模式
概念:表示一个作用于某对象结构中的各元素的操作。使你在不改变各元素所属的类的前提下,即可定义作用于这些元素的新操作。优点:符合单一职责原则。优秀的扩展性。定义新操作时,不改变元素的类,修改访问者类即可。灵活性。缺点:具体类对访问者公布细节,违反了迪米特法则。具体元素修改困难。访问者类中使用到了具体类,具体类的修改需要兼容 访问者类,或者同步修改访问者。适用场景:对象结构中对象的类很少发生改变,但经常需要定义在该类上的新操作;需要对一个对象结构中的对象进行很多不同 并且不相干的操原创 2022-03-01 10:52:08 · 275 阅读 · 0 评论 -
《Head First 设计模式》笔记之模板方法
《Head First 设计模式》笔记之模板方法简述代码使用示例测试简述概念:定义一个操作的骨架,将一些步骤延迟到子类实现。可以不改变算法的结构,只需要修改或添加子类,即可重新定义算法的某些特定步骤。代码使用示例测试...原创 2019-10-25 23:27:55 · 130 阅读 · 0 评论 -
《Head First 设计模式》笔记之策略模式
《Head First 设计模式》笔记之策略模式简述代码FlyStrategyFlyNoWayFlyWithWings使用示例DuckSimpleDuckSwanDuck测试简述概念:定义一系列算法,分布封装起来,并使他们可以相互替换。(有点多态的味道)代码FlyStrategy/** * 飞行策略 * @author ydfind * @date 2019.10.25 */...原创 2019-10-25 23:12:42 · 155 阅读 · 0 评论 -
Java设计模式-工厂方法
设计模式-工厂方法简述代码各种PizzaPizza店使用示例及测试简述举例:北京分店和上海分店,能生产当地口味的奶酪Pizza和素食Pizza。代码各种Pizza/** * 制作pizza 接口 * @author ydfind * @date 2019.10.14 */public abstract class Pizza1 { /** * 准备 ...原创 2019-10-25 22:04:59 · 267 阅读 · 0 评论 -
Java设计模式-简单工厂
设计模式-简单工厂简述代码PizzaCheesePizzaVeggiePizzaSimplePizzaFactory使用示例测试简述举例:生产不同口味Pizza代码Pizzapackage com.ydfind.gof.factory;/** * 制作pizza 接口 * @author ydfind * @date 2019.10.14 */public interfa...原创 2019-10-25 22:02:09 · 191 阅读 · 0 评论 -
设计模式-抽象工厂
设计模式-创造-抽象工厂模式简述代码ShapeCircleRectangle工厂类ShapeFactory测试代码结果简述意图:提供一个接口,无需指定他们具体的类,这个接口可以创建一系列相关或相互依赖对象。优点创建对象方便。根据关键字(比如一个字符串)就可以创建一个对象扩展性高。增加一个具体类即增加一个产品封装性。屏蔽产品实现缺点每增加一个产品,都需要增加一个具体类和修改工厂...原创 2019-10-14 18:00:40 · 130 阅读 · 0 评论 -
Java设计模式-简单工厂、工厂方法、抽象工厂 详解
设计模式-创造-工厂模式代码ShapeCircleRectangle工厂类ShapeFactory测试代码结果意图:定义一个创建对象的接口,让其子类决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。我们通常使用的是简单工厂模式,下面展示简单工厂的3中实现方式:简单工厂、多方法工厂、静态工厂简单工厂模式 与 工厂模式的区别?代码Shapepackage com.ydfind...原创 2019-10-14 15:31:06 · 157 阅读 · 0 评论 -
设计模式-简介
设计模式-简介23种设计模式23种设计模式创建型(5):工厂、抽象工厂、单例、创建者、原型模式。结构型(7):代理、适配器、桥接、装饰者、外观、享元、组合。行为型(1):责任链、命令、解释器、中介者、迭代器、备忘录、观察者、状态、策略、模板、访问者。...原创 2019-10-14 11:02:47 · 133 阅读 · 0 评论 -
JAVA设计模式-策略模式demo
说明下面以为JSONArray的排序为例子。将排序的规则封装成一个个算法(Comparator),通过修改规则的具体实现,可以改变排序结果。代码package com.ydfind.demo.designmode;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONArray;import com.alib...原创 2019-03-21 15:26:43 · 332 阅读 · 0 评论