Java设计模式–开闭原则
说明:软件实体(模块,类,方法等)因该对扩展开放,对修改关闭
(software entities(modules,classes,functions,etc)should be open for extension,but closed for modlification)。通俗的理解就是添加一个功能应该是在已有的代码上进行扩展,而不是修改已有代码
开闭原则的目的是为了代码的可扩展,并且避免了对现有代码的修改给软件带了的风险。可扩展的前提是需要了了解到未来的扩展点,那实际软件开发中如何找到所有的可扩展点,以下提供了几种参考方案
1.如果是业务驱动系统,需要在充分了解业务需求的前提下,才能找到对应的扩展点,如果不确定因素过多,需求变化过快,则可以对于一些比较确定的,短期内就可能会扩展,通过设计扩展点,能明显提升代码的稳定性和开发效率的地方进行设计。
2.如果是通用的性技术开发,比如开发通用框架,组件,类库,你需要考虑技术框架将如何被用户使用,考虑功能的升级需要预留的扩展点以及版本之间的兼容问题。
3.即使对系统的业务或者技术框架有足够的了解,也不一定要设计所有的扩展点。为未来所可能发生变化的每个地方都预留扩展点,也会给系统带来极大的复杂度,实现起来工作量也不可小觑,需要综合开发成本,影响范围,实际收益(包括时间和人员成本)等因素进行考虑.