1.解决软件复杂性
面对需求等不断的变化,就需要软件也随之而变,由此带来软件设计的复杂性。 变化是软件设计复杂的根本原因。解决软件复杂性主要有以下两个思维方式。 好的软件评价标准就是代码的复用性。 分解是一种分而治之的思想,这种思想并不利于软件的复用。 而抽象则是提取共性,是一种高层次的总结。 当软件依赖于高层次的抽象时,其对变化的应对能力也就提升了。 因为变化往往对应细节,抽象本身就是对细节的剔除,共性的东西往往是不容易发生变化的。 换句话说就是软件越依赖细节,其应对变化的能力就越差。 当变化来临时,需要修改的东西就越多,也是就又得熬夜通宵加班改代码了。
2.面向对象
3.设计原则
(1)依赖倒置原则(DIP)
(2)开放封闭原则(OCP)
(3)单一职责原则(SRP)
(4)Liskov替换原则(LSP)
(5)接口隔离原则(ISP)
(6)优先使用对象组合
(7)封装变化点
(8)针对接口编程
4.设计经验
5.设计模式分类
6.重构获得模式(Refactoring to Patterns)
本文作者原创,未经许可不得转载,谢谢配合