摘要:
这段时间看了一些设计模式,看到策略模式与工厂模式的时候,总是感觉他们很相似,不要区分,到具体的场景了你可能还在徘徊到底用工厂还是策略呢?这几天就想写一篇关于策略模式与工厂模式区别的文章,但一直没思路,昨天跟淘宝mm聊了聊,今天早上思路顿时开阔。当时我在说明策略模式与工厂模式区别的时候举了一个例子。说... 阅读全文
随笔分类 - DesignPattern
一些系统设计问题
2014-08-18 17:40 by Loull, 332 阅读, 收藏, 编辑
摘要:
1. 举出一个例子,在这种情况你会更倾向于使用抽象类,而不是接口?这是很常用但又是很难回答的设计面试问题。接口和抽象类都遵循”面向接口而不是实现编码”设计原则,它可以增加代码的灵活性,可以适应不断变化的需求。下面有几个点可以帮助你回答这个问题:在 Java 中,你只能继承一个类,但可以实现多个接口。... 阅读全文
状态机模式
2014-08-06 20:13 by Loull, 1202 阅读, 收藏, 编辑
摘要:
状态机对于你的状态机,可能有若干个状态,每个状态有自己特定的属性和属于该状态下的行为,因此你可以为每个状态定义一个类,当然这些状态实现一个接口State,然后,把这些State作为状态机的实例变量。适用场合:State模式在实际使用中比较多,适合"状态的切换".因为我们经常会使用If elseif ... 阅读全文
简单工厂、工厂方法、抽象工厂之小结
2014-07-27 12:14 by Loull, 209 阅读, 收藏, 编辑
摘要:
工厂模式的好处就是为系统结构提供灵活的动态扩展机制.减速少工作量,方便维护,达到跟源代码解耦简单工厂只是把创造对象的代码简单的移到一个专门用来创建对象的类。简单工厂模式的工厂类一般是使用静态方法,通过接收的参数的不同来返回不同的对象实例。不修改代码的话,是无法扩展的。Class Client { ... 阅读全文
JDK里的设计模式
2014-07-24 11:35 by Loull, 463 阅读, 收藏, 编辑
摘要:
一、Creational patterns创建模式Abstract factory(recognizeable by creational methods returning the factory itself which in turn can be used to create another... 阅读全文
UML类图
2014-05-22 16:44 by Loull, 559 阅读, 收藏, 编辑
摘要:
各种关系的强弱顺序: 泛化=实现>组合>聚合>关联>依赖一、类与类之间的关系(1):关联关系:实线连接、成员变量 在软件系统中,类并不是孤立存在的,类与类之间存在各种关系,对于不同类型的关系,UML提供了不同的表示方式。 关联(Association)关系是类与类之间最常用的一种关系,它是一种结... 阅读全文
装饰模式与代理模式的区别
2014-05-22 16:21 by Loull, 352 阅读, 收藏, 编辑
摘要:
二者的代码实现上非常的类似,但是就行为目的而言,二者是相反的(装饰模式:增强,代理模式:限制)装饰器模式:能动态的新增或组合对象的行为。代理模式:为其他对象提供一种代理以控制对这个对象的访问.(换句话说,可以不执行某功能)装饰模式是“新增行为”,而代理模式是“控制访问”。装饰模式是在原有基础之上增加... 阅读全文
java 笔记(3) —— 动态代理,静态代理,cglib代理
2014-01-11 19:05 by Loull, 727 阅读, 收藏, 编辑
摘要:
0、代理模式代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口。代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的... 阅读全文
【Singleton】单例模式、双检测锁定DCL、volatile(一)
2013-04-19 21:12 by Loull, 499 阅读, 收藏, 编辑
摘要:
单例模式最要关心的则是对象创建的次数以及何时被创建。 Singleton模式可以是很简单的,它的全部只需要一个类就可以完成(看看这章可怜的UML图)。但是如果在“对象创建的次数以及何时被创建”这两点上较真起来,Singleton模式可以相当的复杂,比头五种模式加起来还复杂,譬如涉及到DCL双锁检测(... 阅读全文