VanTYS 2020-05-30
用抽象构建框架,用实现扩展细节
因为抽象灵活性好,适应性广,只要抽象的合理,可以基本保持软件架构的稳定。而软件中易变的细节,我们用抽象派生的实现类进行扩展,当软件需要发生变化时,我们只需要根据需求重新派生一个实现类扩展就可以了。当然前提是我们的抽象要合理,需对抽象的变更有前瞻性和预见性才行。
单一职责原则告诉我们实现类要职责单一;里氏替换原则告诉我们不要破坏继承体系;依赖倒置原则告诉我们要面向接口编程;接口隔离原则告诉我们在设计接口的时候要精简单一;迪米特法则告诉我们要降低耦合;而开闭原则是总纲,他告诉我们要对扩展开放,对修改关闭。
面向对象设计原则点到为止
设计原则本身是思想层面上进行指导,本身是调试概括和原则性的,只是一个设计上的大体方向,其具体体现并不是只有设计模式这一种,理论上来说可以在相同的原则指正下,做出很多不同的实现来。
每一种设计模式并不是单一的体现某一个设计原则,事实上,很多设计模式都是融合了很多设计原则的思想,并不好特别强调设计模式对某个或某些设计原则的体现。而且每个设计模式在应用的时候也会有很多的考量,不同使用场景下,突出使用的设计原则可能也是不一样的。
这些设计原则只是一个建议指导,事实上在实际开发中,很少做到完全遵守,总是在有意无意的违反一些或者是部分设计原则。设计工作本来就是一个不断权衡的工作,有句话说的很好:设计模式是一种危险的平衡艺术,设计原则只是一个指导,有些时候,还是综合考虑业务功能,实现难度,系统性能,时间与目的等多方面的问题。
设计模式已经很复杂了,在一门课程里面再去探讨这些设计原则,这样也避免出现过多的重点内容,导致大家无所适从。