随笔分类 - 设计模式
摘要:0、基本定义 定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。 发布者/订阅者模式。 事件监听、swing中都有用到。 1、代码实战 时间核心类 观察者 被观察者 test 2、使用场景 》关联行为场景 》事件多级触发场景 》跨系统的消息交换场
阅读全文
摘要:0、基本定义 将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 通俗的讲,在不改变老系统的功能接口情况下,作向下兼容。 spring中以Adapter结尾的都是。 1、实例代码(类间继承) 功能:对原来对账号密码登入方式,添加第三方登入。
阅读全文
摘要:0、基本定义 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。 重点不是选择,只能 重定义 该算法的某些特定的步骤。 这里场景模拟 JdbcTemplate 1、代码 2、总结 优点: 》封装不变部分(父类),扩展可变部分(子类) 》提取公共部分代码,方便维护 策略模式 vs 模版模式 策略模
阅读全文
摘要:0、 基本定义 定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法对变化,不会影响到使用算法到客户。 通俗的讲,场景有如下一些:旅行的路线、登入方式、爬虫的目标网站、支付渠道。。。 spring 中 BeanFacotry 中有使用。 本文场景选用 支付渠道 1、代码 Order.j
阅读全文
摘要:0、基本定义 为其他对象提供一种代理以控制对这个对象对访问。 静态代理:代理前,所有对行为都是已知对。 不能扩展 动态代理:代理前,所有的行为都是未知的。 》 jdk:必须实现 interface,从interface中,获取method,进行字节码重组,生成新类。 》 cgli:对类进行代理,En
阅读全文
摘要:0、基本定义 工厂模式定义:一个用于创建对象的接口,让子类决定实例化哪一个类。实例化延迟到其子类。‘ 抽象工厂模式:为创建一组相关或相互依赖的对象提供一个接口,而且无须指定他们的具体类。(概念略抽象) 只对结果负责。 解耦合 spring 中 AbstractFactoryBean 创建对象使用了工
阅读全文
摘要:0、 基本定义 定义:用原型实例指定创建的种类,并且通过拷贝这些原型创建新的对象。 implement Cloneable 不支持 final BeanUtils copy 有使用反射实现 浅拷贝:字段是值类型,逐位复制;字段是引用类型,复制引用但不复制引用对象。 深拷贝:复制引用对象, 可通过 序
阅读全文
摘要:0、基本定义 单例模式,保证一个类仅有一个实例,并提供一个访问它的全局访问点. 通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。一个最好的办法,让类自身负责保存它的唯一实例。 这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。 要求: 1、构造私有
阅读全文
摘要:0、总图: 1、开闭原则: 总原则。 含义:一个软件实体 如类、模块和函数应该对扩展开发,对修改关闭。 提高扩展性。 2、单一职责 只有一个原因 引起变化。每个类应该实现单一职责。 3、里氏替换原则 开闭原则的补充 所有应用基类的地方,必须能透明地使用其子类对象 > 子类必须完全实现父类的方法 >
阅读全文

浙公网安备 33010602011771号