
设计模式
雨季的蘑菇
fight
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【设计模式序章】
本块用于本人学习大话设计模式这本书的编码及学习笔记,使用Java进行编程,始于2018/5/22。原创 2018-05-22 00:53:32 · 223 阅读 · 0 评论 -
【设计模式】原型模式
原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。 本设计模式通过创建简历的例子进行说明,并对对象的浅复制和深复制进行说明。 浅复制模式代码如下: package chapter9; public class Resume...原创 2018-08-22 00:32:08 · 206 阅读 · 0 评论 -
【设计模式】外观模式
迪米特法则(LoD):如果两个类不必须彼此直接通信,那么这两个类就不应该发生直接的相互作用,如果一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。 外观模式(Facade):为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 外观模式的适用场景: 在设计初期阶段,应该有意识的...原创 2018-08-28 23:18:45 · 223 阅读 · 0 评论 -
【设计模式】模板方法模式
模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。 模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法模式是通过把不变行为搬移到超类,去除子类中的重复代码来体现它的优势,即提供了一个很好的代码复用平台。 本模式通过不同学生答题来进行模拟,代码如下: package chapter10; pub...原创 2018-08-22 23:14:35 · 190 阅读 · 0 评论 -
【设计模式】工厂方法模式
简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖。但是在增加功能时,需要在原来的工厂类的方法里增加代码,修改原有的类,也就是说不但对扩展开放了,也对修改开放了,违背了开放-封闭原则。 工厂方法模式(Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪一个...原创 2018-08-13 23:12:27 · 223 阅读 · 0 评论 -
【设计模式】代理模式
代理模式(Proxy),为其它对象提供一种代理以控制对这个对象的访问。 代理模式适用的场合: 远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。 虚拟代理,是根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象。例如浏览器优化下载。 安全代理,用来控制真实对象访问时的权限。一般用于对象应该有...原创 2018-08-01 21:34:12 · 161 阅读 · 0 评论 -
【设计模式】软件设计需要遵循的原则
No.1 单一职责原则(Simple Responsibility Principle->SRP) 就一个类而言,应该仅有一个引起它变化的原因。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当发生变化时,设计会遭受到意想不到的破坏。软件设计真正要做的许多内容,就是发现职责并把那些职责相互分立...原创 2018-07-05 23:58:03 · 1023 阅读 · 0 评论 -
【设计模式】装饰模式
装饰模式(Decorator):动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 Component是定义一个对象接口,可以给这些对象动态地添加职责。ConcreteComponent是定义了一个具体的对象,也可以给这个对象添加一些职责。Decorator,装饰抽象类,继承了Component,从外类来扩展Component类的功能...原创 2018-07-16 22:45:48 · 189 阅读 · 0 评论 -
【设计模式】策略模式
本篇文章的场景是模拟一个商场收银软件,营业员根据客户所购买商品的单价和数量向客户收费。使用简单工厂模式和策略模式分别进行实现。 简单工厂模式实现: 使用类对收费进行抽象:面向对象的编程,并不是类越多越好,类的划分是为了封装,但分类的基础是抽象,具有相同属性和功能的对象的抽象集合才是类。 现金收费抽象类:...原创 2018-06-26 22:42:38 · 265 阅读 · 0 评论 -
【设计模式】简单工厂模式
简单工厂模式又称静态工厂方法模式,不属于GOF设计模式。是由一个工厂对象决定创建出哪一种产品类的实例。优点在于只需要特定的输入就可以利用工厂类的静态方法实例化出合适的对象,缺点在于容易违反高内聚责任分配原则。 以计算器实例为例进行实践,本篇代码简化为由Console输出进行模拟。 目标类: package chapter1; /** * ...原创 2018-05-22 01:00:08 · 242 阅读 · 0 评论 -
【设计模式】建造者模式
建造者模式:将一个复杂对象的构建与它的表示分离,使得相同的构建过程可以创建不同的表示。 结构图如下: Builder是为创建一个Product对象的各个部件指定的接口,ConcreteBuilder是具体建造者,实现Builder接口,构造和装配各个部件。Product是具体的产品角色,Director是指挥者,使用Builder接口进行具体...原创 2018-09-03 22:55:19 · 247 阅读 · 0 评论