学了一部分的设计模式,这是通过两个人的对话来进行探讨一下真正的程序是应该怎么写出来的。我们以前的马马虎虎的写程序就是为了能实现就行了,什么冗余呀、健壮性呀等等,都没有考虑进去,可以说是敷衍了事……
牵一发而动全身(
开放-封闭原则
)
:我们通过学习了设计模式之后,起码知道了两个原则“开放-封闭原则”、“依赖倒转原则”;我们来讨论一下开放-封闭原则;开放封闭原则要求类、模块以及功能对扩展是开放的,对修改是封闭的,一个对象一旦被定义好,并公开给其他对象调用,我们就不能轻易地修改它。
这里所谓的"修改",可以分为两个层次来分析。一个层次是对抽象定义的修改,如对象公开的接口,包括方法的名称、参数与返回类型。我们必须保证一个接口,尤其要保证被其他对象调用的接口的稳定;否则,就会导致修改蔓延,牵一发而动全身。
将对象不变的部分封装起来
从某种程度上讲,接口就是标准,要保障接口的稳定,就应该对对象进行合理的封装。
由于我们对扩展实现了开放,才能够保证对修改是封闭的。开放利用了对象的抽象,封闭则在一定程度上利用了封装。最佳的做法仍然是要做到分离对象的变与不变,将对象不变的部分封装起来,并遵循良好的设计原则以保障接口的稳定;至于对象中可能变的部分,则需要进行抽象,以建立松散的耦合关系。实际上,开放封闭原则也体现了依赖倒置原则的思想。