- 六大原则
开闭原则(Open Closed Principle,OCP) 开闭原则的定义已经非常明确地告诉我们: 1、软件实体应该对扩展开放,对修改关闭, 其 含义是说一个软件实体应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化。 那什么又是软件实体呢?软件实体包括以下几个部分: ● 项目或软件产品中按照一定的逻辑规则划分的模块。 ● 抽象和类。 ● 方法。 里氏代换原则(Liskov Substitution Principle,LSP) 1.子类必须完全实现父类的方法 2.子类可以有自己的个性 3.覆盖或实现父类的方法时输入参数可以被放大 4. 覆写或实现父类的方法时输出结果可以被缩小 依赖倒转原则(Dependency Inversion Principle,DIP) ● 高层模块不应该依赖低层模块,两者都应该依赖其抽象; ● 抽象不应该依赖细节; ● 细节应该依赖抽象。 ● 模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过 接口或抽象类产生的; ● 接口或抽象类不依赖于实现类; ● 实现类依赖接口或抽象类。 接口隔离原则(Interface Segregation Principle,ISP) ● 接口要尽量小 ● 接口要高内聚 ● 定制服务 ● 接口设计是有限度的 接口尽量细化,同时接口中的方法尽量少。看到这里大家有可能要疑惑了,这与 单一职责原则不是相同的吗 合成/聚合复用原则(Composite/Aggregate Reuse Principle,CARP) ● LSP 基础上去做 ● 要尽量使用合成和聚合,尽量不要使用继承。 最小知识原则(Principle of Least Knowledge,PLK,也叫迪米特法则) ●一个对象应该对其他对象有最 少的了解 单一职责原则(Single Responsibility Principle SRP) ● 每个接口职责分明,结 构清晰 开闭原则具有理想主义的色彩,它是面向对象设计的终极目标。 其他几条,则可以看做是开闭原则的实现方法。 设计模式就是实现了这些原则,从而达到了代码复用、增加可维护性的目的。 抽象类和接口区别: 1.对接口的继承使用implements,抽象类使用extends. 2.接口中不可以声明变量,但可以声明类常量.抽象类中可以声明各种变量 3.接口没有构造函数,抽象类可以有 4.接口中的方法默认为public,抽象类中的方法可以用public,protected,private修饰 5.一个类可以继承多个接口,但只能继承一个抽象类
自理解的一些
最新推荐文章于 2024-05-16 08:21:35 发布