这个模式是对模板方法的简单包装,可以看到,只是多了一个Context类这个包装器。 以上UML图的代码很好实现,关键是Client如何使用Context类: Strategy s = new ConcreteStrategyA(); Context context = new Context(); context.St... Read More
状态模式是把各种状态封装成不同的类。 关于Context类的实现,不太同于Strategy,虽然原理是一样的: public class Context { private State stateA, stateB, state; public Context() { stateA = new State... Read More
Facade简化并提供了对基础架构的统一访问,从而减少复杂性。它只是封装,可以看成黑盒。 在Web编程中,有所谓的n-层架构,就是Facade的思想,即每一层都封装好一部分功能,提供给上一层统一的方法调用,比如说数据层,将操作一次数据库的整个过程封装为一个方法,而我们在逻辑层调用该方法时,只需要传递一个SQL参数: Code highlighting produced by Actipro C... Read More
这个模式用途很多,先看它的UML: abstract public class Subject { abstract public void Request(); } public class RealSubject : Subject { public override void Request() {... Read More