随笔分类 - 设计模式
摘要:设计模式 在软件工程中,设计模式(design pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。 这个术语是由埃里希·伽玛(Erich Gamma)等人在1990年代从建筑设计领域引入到计算机科学的。 使用设计模式是为了写出可扩展、可读、可维护的高质量代码。 为何要学
阅读全文
摘要:场景 美国交流电插头(2头)无法插到欧洲壁式插座(3孔) 解决方法是在中间环节用适配器转化下搞定。 意图 将一个借口转化成另一个接口 举例 代码 # # ## ## ### 测试 输出
阅读全文
摘要:定义 定义算法族,分别封装起来,让他们之间可以互相替换,此模式让 算法的吧变化独立于使用算法的客户 UML 参考代码 #Character #King #Queen #Knight #WeaponBehavior #AxeBehavior #BowANdArrowBehavior #KnifeBeh
阅读全文
摘要:代理 代理顾名思义:代为处理。不是对目标对象的直接操作,而是通过代理对目标对象进行包装,此时可以在目标对象的基础上添加额外的操作以满足业务需求。图示 分类:动态代理、静态代理。 代理三要素:共同接口、真实对象、代理对象 引入代理的原因: 在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对
阅读全文
摘要:原理 生产者在仓库没有满的时候进行生产,满了后等待 消费者在仓库有存货事新型消费,没货是等待 示例 #Phone public class Phone { private int id; public Phone() { id = new Random().nextInt(); } public i
阅读全文
摘要:1. 情景 面馆开张了,主营2种面:酸菜面、牛肉面;外加2种配料:鸡蛋、豆皮 用装饰者模式来设计这一订单系统: 满足要求:可以返回点的名称、计算总价格 2. 设计 大体思路: 这里要说的是鸡蛋、豆皮是装饰者,为了让他可以任意的加配料,返回仍是面条类。 类设计图: 3. 实现 面条抽象类 装饰者抽象类
阅读全文
摘要:1. 介绍 当对象间存在一对多关系时,则使用观察者模式(Observer Pattern) 当一个对象被修改时,则会自动通知它的依赖对象(广播)。观察者模式属于行为型模式。 2. 类定义 定义观察者接口和被观察者抽象类 定义实现被观察者的具体类 定义实现观察者的2个具体类 3.测试 结果 4.总结
阅读全文
摘要:介绍 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。一个Buider类会一步一步的构建最终的对象,该Builder类是独立于其他对象的。 何时使用 一些基本的部件不变,而其组合经常变化的时候 如何解决 将变与不变分离开 应用实例 麦当劳里的汉堡、可乐、薯
阅读全文
摘要:简介 单例模式(Singleton Pattern)是Java中最简单的设计模式之一。属于创建型模式。该模式只涉及到一个单一的类,负责创建自己的对象,并且只有单个的对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 意图 保证一个类有且只有一个实例,并提供一个
阅读全文
摘要:介绍 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时无需对客户端暴露创建的逻辑,只需一个公共的接口便可指向创建的对象 意图 定义一个创建对象的接口,让其子类决定实例化哪
阅读全文
摘要:2017年 1. 单例模式 3.1--3.5 2. 工厂模式 打脸了,根本没坚持下来,时光留到2019.06.29,重复昨天的故事。 为何要学习设计模式? 经验复用:你的问题很大可能前人已经经历过并且给了很好的解决方案,这些方案就是设计模式 用专业的词汇进行充分的沟通:只要你说使用观察者模式,就不用
阅读全文