设计原则:

⊙"开-闭"原则 (Open-Close Principle 或者OCP)[目标]

 一个软件实体应该对扩展开发,对修改say NO!在设计一个模块的时候,应当思考日后升级过程中,如何不修改源代码的情况下改变这个模块的行为

⊙里氏代换原则(Liskov Substitution Principle 或者LSP)

 任何基类可以出现的地方,子类都可以出现,而基类与子类的继承关系就是抽象化的具体体现

⊙依赖倒转原则(Dependeney Inversion Principle 或者DIP)

 要以来依赖于抽象不要依赖于实体

⊙接口隔离原则(Interface Segregation Principle 或者ISP)

 应该为客户端提供尽可能少的单独的接口,而不是提供大的总接口

⊙组合/聚合复用原则(Composition/Aggregation Principle 或者CARP)

 尽量要使用 组合/聚合,而不是继承关系达到复用的目的

⊙迪米特法则(Law of Demeter 或者LoD)

 一个软件实体应当与尽可能少的其他实体发生互相作用