随笔分类 -  设计模式

摘要:模式定义 给目标对象提供一个代理对象,并由代理对象控制对目标对象的引用 为什么使用代理 在不改变目标对象方法的情况下对方法进行增强 代理模式实例 静态代理 先创建一个用户接口(UserInterface),声明一个方法 创建实现类(UserImpl) 创建代理对象类(UserProxy),通过代理类 阅读全文
posted @ 2019-08-30 11:10 武培轩 阅读(175) 评论(0) 推荐(0) 编辑
摘要:在工厂方法模式中具体工厂负责生产具体的产品,每一个具体工厂对应一种具体产品,工厂方法也具有唯一性,一般情况下,一个具体工厂中只有一个工厂方法或者一组重载的工厂方法。我们可以想一下,有时候我们需要一个工厂可以提供多个产品对象,而不是单一的产品对象,即产品族。这个时候我们就需要使用抽象工厂模式。 阅读全文
posted @ 2018-03-29 13:10 武培轩 阅读(1160) 评论(0) 推荐(2) 编辑
摘要:在简单工厂模式中,我们发现存在很多问题: 由于工厂类集中了所有产品创建逻辑,一旦不能正常工作,整个系统都要受到影响。 要新增产品类的时候,就要修改工厂类的代码,违反了开放封闭原则(对扩展的开放,对修改的关闭)。 简单工厂模式由于使用了静态工厂方法,造成工厂角色无法形成基于继承的等级结构。 为了解决上述的问题,我们学习一种新的设计模式:工厂方法模式。 阅读全文
posted @ 2018-03-25 21:24 武培轩 阅读(535) 评论(0) 推荐(1) 编辑
摘要:简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式定义了一个创建对象的类,由这个类来封装实例化对象的行为。 阅读全文
posted @ 2018-03-25 17:59 武培轩 阅读(1817) 评论(3) 推荐(3) 编辑
摘要:定义了对象之间的一对多依赖,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。主题(Subject)是被观察的对象,而其所有依赖者(Observer)称为观察者。 阅读全文
posted @ 2018-03-24 12:17 武培轩 阅读(895) 评论(0) 推荐(4) 编辑
摘要:模式定义 动态的将新功能附加到对象上,在对象功能扩展方面,它比继承更有弹性。 设计原则 多用组合,少用继承 类应设计的对扩展开放,对修改关闭。 阅读全文
posted @ 2018-03-23 00:20 武培轩 阅读(1022) 评论(0) 推荐(2) 编辑
摘要:模式定义 确保一个类最多只有一个实例,并提供一个全局访问点。 单例模式分为饿汉式和懒汉式。 懒汉式单例模式:在类加载时不初始化。 饿汉式单例模式:在类加载时就完成了初始化,所以类加载比较慢,但获取对象的速度快。 饿汉式-线程安全 懒汉式-线程不安全 懒汉式-线程安全 双重校验锁-线程安全 静态内部类 阅读全文
posted @ 2018-03-21 00:10 武培轩 阅读(1066) 评论(0) 推荐(3) 编辑

点击右上角即可分享
微信分享提示