设计模式
nabila
这个作者很懒,什么都没留下…
展开
-
Template Method模式和Strategy模式
Template Method模式和Strategy模式都可以分离通用的算法和具体的上下文,所解决的问题是类似的,但是实现的方法不同,一个是用的继承,一个是用的委托。我们先来看一下Template 的结构图:Template Method模式实际上就是利用面向对象中多态的概念实现算法实现细节和高层接口的松耦合。Template Method模式展示了面向对象编程中诸多经典重用形式中原创 2012-08-24 13:41:06 · 1490 阅读 · 0 评论 -
Command模式
Command模式是一个简单而又非常有用的模式。Command模式解除了系统逻辑和实际执行命令部分之间的耦合。Command模式常见的用法是创建和执行事务,比如一般的增删改查等动作。Active Object模式是实现多线程控制的一个古老的技术。考虑一下以下的代码:ActiveObjectEngine类维护了一个Command对象的链表。 public class ActiveO原创 2012-08-24 13:39:53 · 469 阅读 · 0 评论 -
Facade模式和Mediator模式
Facade模式和Mediator模式Facade(外观)模式为子系统中的各类(或结构与方法)提供一个简明一致的界面,隐藏子系统的复杂性,使子系统更加容易使用。他是为子系统中的一组接口所提供的一个一致的界面。Facade模式经常用来隔离数据库和应用程序,如下图:Mediator模式是用一个中介对象来封装一系列关于对象交互行为。为何使用Mediator?各个对象之间的交互操作非常多。原创 2012-08-24 13:41:52 · 1132 阅读 · 0 评论 -
Singleton模式和Monostate模式
Singleton模式和Monostate模式都是强制对象单一性的模式。有时会认为强制对象单一性的机制似乎是多余的,但是如果这种机制是轻量级的,那么传达意图带来的收益就会胜过实施这些机制的代价。Singleton模式最常见的用法如下,使用私有构造函数,一个静态变量,以及一个静态方法对实例化进行控制和限制。如果想保证线程安全,可以再加上lock。 public class Single原创 2012-08-24 13:42:20 · 829 阅读 · 0 评论 -
Null Object模式
第一次听说这个模式,这个模式看起来好像很简单,但是实际用起来还是有点不太容易理解。我们在代码里经常会进行null检查,这种检查是易出错的,假设我们在代码里对null的情况也需要作出响应,Null Object模式就显示出它的优点。可以看一下这个例子:Employee e = DB.GetEmployee("Bob");if (e != null && e.IsTimeToPay(t原创 2012-08-24 13:43:00 · 916 阅读 · 0 评论