设计模式
balsamspear
这个作者很懒,什么都没留下…
展开
-
工厂方法模式
工厂方法模式(Factory Method Pattern) 定义 工厂方法模式定义一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。 优点 符合依赖倒转原则,父类引用指向子类对象 符合开闭原则,对扩展开放,对修改关闭,如增加小米手机时,则增加一个小米手机工厂,而不用修改现有代码 客户端不需要关注创建对象的细节,解耦合 缺点 不适用于小型项目或简单的项目 ...原创 2018-11-30 09:44:30 · 133 阅读 · 1 评论 -
适配器模式详解
适配器模式(Adapter Pattern) 结构型设计模式 1. 定义 适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。 2. 适配器模式存在的意义? 在代码架构设计或详细设计阶段,是用不到适配器模式的,它是为了后面的升级、扩展、更新而存在的补救措施。 3. 何时使用 系统需要使用现有的类(220v),而此类的接口不符合系统的需要(110v)。...原创 2018-12-23 21:47:48 · 162 阅读 · 0 评论 -
原型模式详解
原型模式(Prototype pattern) 定义 通过已有对象,拷贝出一个新对象,具有一模一样的属性,存放在不同的内存地址上 模式总结过程 游戏DOTA,简化规则如下: 分上中下三路,每路、每30秒就出现一波小兵,各路小兵沿种路向对方进发。 每波小兵由一个远程小兵和三个进战小兵组成。 当攻破一路兵营后,小兵会升级成中后,当攻破三路兵营后,会升级成大兵。 小中大兵的区别在于血量、攻击力和体积不...原创 2018-12-17 23:14:39 · 157 阅读 · 0 评论 -
模板方法模式详解
模板方法模式(Template Method Pattern) 定义 模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。——《HeadFirst设计模式》 通俗地说,就是在超类中定义一系列方法,其中一个方法(骨架方法)顺序调用其它方法,子类则按需要重写部分方法(所谓的延迟到子类) 模式总结过程 公司要做...原创 2018-12-11 14:58:07 · 107 阅读 · 0 评论 -
策略模式详解
策略模式(Strategy Pattern) 定义 策略模式定义了算法族,分别封装起来,让它们之间可以相互替换,此模式使算法的变化独立于使用算法的客户。——《Head First设计模式》 模式总结过程 公司新开发一款打怪等级游戏,三个角色:猎人、剑士、枪手,所有角色都能移动、攻击和外观,但是有两个不同,1攻击的方式不同,猎人使用弓箭,剑士使用利剑,枪手使用手枪,2外观不同 // 抽象角色类,...原创 2018-12-07 16:07:48 · 95 阅读 · 0 评论 -
建造者模式
建造者模式(Builder Pattern) 定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 只把复杂对象(产品product)定义出来,定义它需要的各种属性,但属性的赋值交给另一个对象(builder),且在builder内决定赋值顺序,并把产品返回(个人理解) 模式总结过程 有一个村子,风景秀丽,而你是村长,有一天,一个人来找你,叫你帮给他出一个游玩的方案...原创 2018-12-06 15:05:18 · 99 阅读 · 0 评论 -
观察者模式详解
观察者模式(Observer Pattern) 定义 观察者模式定义了对象之间的一对多的依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。 通俗的定义:发布订阅模式(报社-读者) 模式总结过程 公司经营电商系统,有自己的工厂,当工厂有新产品产出时,通知仓库更新库存、通知商店拿货、通知客户购买 初步的实现如下 // 自家工厂 public class Factory...原创 2018-12-12 14:33:54 · 154 阅读 · 0 评论 -
代理模式
代理模式(Proxy Pattern) 定义 代理模式为另一个对象提供一个替身或占位符以控制对这个对象的访问。——《headfirst设计模式》 个人理解:通过一个对象生成一个新的对象,新对象除了原对象的功能,还增加了些新的功能。如原对象方法执行前做些什么,执行后做些什么,异常了做些什么。原对象就是被代理对象,新对象就是代理对象。 生活中的例子 经纪人与明星 中介:房地产中介(代理开发商)、...原创 2018-12-01 19:20:36 · 87 阅读 · 0 评论 -
设计模式
设计模式是什么(Design pattern) 一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结 设计模式代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。 设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。 这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。 设计模式的好处 解耦 提高扩展性 减少重复代码 易读易维护 设计模式...原创 2018-11-28 16:22:27 · 81 阅读 · 0 评论 -
单例模式
1. 概念 广义单例模式,就是在jvm中,共用一个类的唯一实例 狭义单例模式,即单例类,通过类本身去实现上述目的 2. 优缺点 优点 避免频繁的创建和销毁实例,这点对大对象犹为重要 缺点 单例类较难扩展,牵一发而动全身 单例类不能被继承,因为构造器私有 3. 应用 线程池、缓存、日志、配置文件、打印机/显卡等硬件设备的驱动程序对象等等 Servlet、Spring、Strust2、S...原创 2019-10-22 09:34:15 · 104 阅读 · 0 评论 -
抽象工厂模式
抽象工厂模式(Abstract Factory Pattern) 定义 提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类 工厂方法和抽象工厂 工厂方法生产的对象为同一层级的,如苹果手机、三星手机和华为手机等 抽象工厂生产的对象为同一系列的,如苹果、三星和华为的手机、电脑和手环等 工厂方法一个工厂对应一个产品 抽象工厂一个工厂对应一个系列的产品 抽象工厂是工厂方法的扩展 优点 ...原创 2018-11-30 09:45:36 · 152 阅读 · 2 评论 -
外观模式详解
外观模式(Facade Pattern) 结构型设计模式 1. 定义 外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。 通俗点说,就是有很多子系统(或类或模块),它们各自有各自的功能,将它们的部分或全部功能按一定的流程去执行,就组合成一个完整的客户需要的功能,但是,客户一个个去执行这些功能,会费时费力,所以我们提供一个类(或模块或系统),...原创 2018-12-25 14:57:30 · 153 阅读 · 0 评论