单一职责原则
单一职责原则定义:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。
单一职责原则是实现高内聚、低耦合的指导方针。一个类承担的职责越多,它被复用的可能性越小。一个类的职责太重,将导致系统非常脆弱,一个职责的变化可能会影响到其他职责。另一方面,类的职责也不应过分细分,这将降低代码的维护性。
该职责的核心在于掌握好每个类的颗粒度大小。
开闭原则
开闭原则的定义:一个软件实体应当对扩展开放,对修改关闭。也就是说在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展,即实现在不修改源代码的情况下改变这个模块的行为。其中,软件实体可以是指一个软件模块、一个由多个类组成的局部结构或一个独立的类。
在面向对象的编程语言中,该原则一般是通过为系统定义一个相对稳定的抽象层(接口、抽象类)来体现的,具体类通过继承该抽象层来实现。在调用该软件实体时应该针对抽象层进行编程,实际所采用的具体类可通过配置文件进行配置(一般不把对配置文件的修改认为是对系统源代码的修改)。借助面向对象程序设计语言的多态机制,可以使程序按照预期进行。
符合开闭原则的软件,可以非常方便地对系统进行扩展,而且在扩展时无须修改现有代码,使得软件系统在拥有适应性和灵活性的同时具备较好的稳定性和延续性。百分之百的开闭原则很难达到,但是要尽可能使系统设计符合开闭原则。