开闭原则 Open-Closed Principle
意思是:一个软件实体应当对扩展开放,对修改关闭。
在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展,即应当在不修改源代码的情况下改变这个模块的行为。
重点:开闭原则解决问题的关键在于抽象化,把系统所有可能的行为抽象成为一个抽象底层,这个抽象的底层规定出所有的具体实现必须提供的方法的特征,给系统定义出一个一劳永逸,不在修改的抽象设计,此设计允许有无穷尽的行为在实现层被实现。
在java中,可以定义一个或多个抽象Java类或java接口,规定出所有的具体类必须提供的方法的
特征 作为系统设计的抽象层。作为系统的抽象层,要预见所有可能的扩展,因此
在任何扩展情况下系统的抽象底层不需要修改,从而满足了开闭原则的对修改关闭。
同时,由于从抽象层导出一个或多个新的具体类可以改变系统的行为,因此系统的
设计对扩展是开放的,这就满足了开闭原则的对扩展开放。
在软件开发的过程中,一直都是提倡需求导向的,这就要求在设计的时候,要非常清楚地了解用户需求,判断需求中包含的可能的变化,从而明确在什么情况下使用开闭原则。