6.1 开闭原则的定义
在哲学上,矛盾法则即对立统一的法则,是唯物辩证法的最根本法则。本章要讲的开闭原则是不是也有同样的重要性且具有普遍性呢?确实,开闭原则是Java世界里最基础的设计原则,它指导我们如何建立一个稳定的、灵活的系统,先来看开闭原则的定义:
Software entities like classes,modules and functions should be open for extension but closed for modifications.(一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。)
初看到这个定义,可能会很迷惑,对扩展开放?开放什么?对修改关闭,怎么关闭?没关系,我会一步一步带领大家解开这些疑惑。
我们做一件事情,或者选择一个方向,一般需要经历三个步骤:What——是什么,Why——为什么,How——怎么做(简称3W原则,How取最后一个w)。对于开闭原则,我们也采用这三步来分析,即什么是开闭原则,为什么要使用开闭原则,怎么使用开闭原则。