2012/10/11
一个分析缺陷:过早对细节投入过多的关心
我们分析者可能共同存在一个问题是:在开发过程中,我们过早投入细节问题。这个也很自然,因为处理细节总是比较容易。细节上的解决方案通常很明显,但不一定是最好的起点,应该尽可能晚地投入细节。
留意你的直觉:当我直觉上面不喜欢一个设计的时候,后面一定有更好的设计在等着。
对继承的过分依赖会导致比应该的(至少是我应该认为)更高的维护代价。
细节可能是使解决方案变得混乱。
Façade模式提供一条一般化的途径:它让我找到问题的起点。这个模式中Façade部分的实质是:我为客户创建了一个新的接口,用以代替系统现有的接口。我可以这样做,因为Client对象并不需要原始对象提供的所有功能。
对象:原来观点:它们是数据和方法的结合
新观点:它们是有责任的东西。
对象拥有数据和方法是在实现视角的。
对象是拥有责任的实体是在概念视角上面的。
注意力集中在对象是应该做什么的,而不是如何实现它们。
按照责任来考虑问题可以使问题更简单化,因为这样可以帮助我们定义对象的公共接口。如果对象有某种责任,就一定有某种途径履行自己的责任。但是这并不对对象内部做任何暗示。关于对象责任的信息甚至可以不在这对象的内部。
有趣的是,你将发展关于动机而不是实现的情景在设计模式中反复出现。用这样的方法看待对象。让它成为你对对象的基本观念。这样做,你将获得出众的设计。
封装不仅仅是数据的隐藏,这样看待封装就太局限了。封装应该被想任何形式的隐藏。它可以隐藏数据,隐藏实现细节,派生类或其他很多东西(子系统,适配的接口).
发现并封装变化点。
任何东西都是对象。