Design in construction --Code complete reading notes(5)
“险恶的问题”就是那种只能通过解决或部分解决才能明确的问题。
犯错正是设计的关键所在--在设计阶段犯错并加以改正,其代价要比在编码后才发现同样的错误并彻底修改低得多。
设计永无止境--到你没有时间再做了为止。
精心设计的对象关系使关注点相互分离,从而使你在每个时刻只专注于一件事情。
理想设计特征:
1、最小的复杂度
2、易于维护
3、松散耦合
4、可扩展性
5、可重用性
6、高扇入
7、低扇出
8、可移植性
9、精简性
10、层次性
11、使用标准技术
设计层次:
软件系统--分解为子系统和包--分解为包中的类--分解为类中的数据和子程序--子程序内部
通过限制子系统之间的通信来让每个子系统更有存在的意义。
使用对象进行设计的步骤:
1、辨识对象及其属性
2、确定可以对各个对象进行的操作
3、确定各个对象能对其它对象进行的操作
4、确定对象的哪些成员对其它对象可见
5、定义每个对象的公开接口
耦合的种类:
1、简单的数据参数耦合
2、简单的对象耦合
3、对象参数耦合
4、语义上的耦合--非常危险
最大的失误来自于误认为自己已经做得很充分,可事后却发现还是做得不够,没能发现其它一些设计挑战。最大的设计问题通常不是来自那些困难的部分,并且在其中做了不好设计的区域,而是来自于认为最简单,而没有做任何设计的区域。