对扩展开放,对修改关闭,在不修改已有稳定运行的代码情况下,在原有基础上进行拓展,增加新功能,避免影响到原有功能。
对类来说,一个类应应该只负责一项职责,类A负责两个不同职责:职责1和职责2.当职责1需求变更而改变类A时,可能造成职责2执行错误,所以需要将类A的力度分解为A1和A2。也就是说一个类只负责一项职责或一种功能,这样可以降低类的复杂度,提高类的可读性,提高系统的可维护性,当修改一个功能时可以降低对其他功能的影响。
如果某类A与某类B可以没有直接联系,尽量不要在A中出现B类。这样可以减少代码耦合度,提高代码健壮性。
建立单一接口,不要建立庞大臃肿的接口,尽量细化接口,接口中的方法尽量少。接口尽量小,但是要有限度,但是如果过小,就会造成接口数量过多,使设计复杂化。
是开闭原则的补充,任何出现父类的地方,都可以用自子类替代,子类可以在父类的基础上扩展新的功能,但在使用子类的地方不能使用父类,因为父类不一定有子类的新功能
程序要依赖抽象,而不是依赖实现。我们的在代码方法的参数或者对象关联时,尽量用高层次的抽象类,而不是具体的实现类,其本质就是面向接口编程。
要尽量的使用合成和聚合,而不是继承关系达到复用的目的。该原则就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分,新的对象通过向这些对象的委派达到复用已有功能的目的。
原文:https://www.cnblogs.com/wdaa/p/14506232.html