设计模式是个好东西,它们可以解决很多设计问题,但是它们的存在并不意味着必须要经常使用它们。
一、继承和委托
继承:在实现算法通用性上,通过继承在不同的具体上下文上实现该通用算法,但是这项技术是有代价的。继承是一种非常强的关系。派生类不可避免的要和它们的基类绑在一起。
委托:更多要考虑更多数量的类和间接层次。而且需要维护一个额外的类,需要考虑更多的问题。
二、facade 和 mediator
facade:当需要为一组具有复杂且全面的接口的对象提供一个简单且特定的接口时。
mediator:以一种隐藏且不受限的方式来施加它的策略。类似于监听器。