面向对象编程原则

        程序猿要想设计出高内聚、低耦合、易扩展、易维护、易测试的面向对象系统。一般需要遵循面向对象编程的七大原则。但这并不是说一定要遵循七大原则,但很多场景下需要程序员权衡利弊,进行取舍。选取最适合的方案,而不是一味遵循七大原则。

        接下来来介绍何为面向对象编程的七大原则。

单一职责原则

        单一职责原则(SRP:Single responsibility principle),设计创建的对象,必须职责明确,比如商品类,里面相关的属性和方法都必须跟商品相关,不能出现订单等不相关的内容。这里的类可以是模块、类库、程序集,而不单单指类。一个类应该只有一个引起它变化的原因,即一个类只负责一项职责。这样可以降低类的复杂度,提高类的可维护性和可测试性。

里式替换原则

       里式替换原则 (LSPxLiskov Substitution principle)子类能够完全替代父类,反之则不行。通常用于实现接口时运用。因为子类能够完全替代基(父)类,那么这样父类就拥有很多子类,在后续的程序扩展中就很容易进行扩展,程序完全不需要进行修改即可进行扩展。比如IA的实现为A,因为项目需求变更,现在需要新的实现,直接在容器注入处更换接口即可.

迪米特法则

      迪迷特法则(LoD:Law of Demeter, ) 即最小原则,或者说最小耦合。通常在设计程序或开发程序的时候,尽量要高内聚,低耦合。当两个类进行交互的时候,会产生依赖。而迪米特法则就是建议这种依赖越少越好。就像构造函数注入父类对象时一样,当需要依赖某个对象时,并不在意其内部是怎么实现的,而是在容器中注入相应的实现,既符合里式替换原则,又起到了解耦的作用。个软件实体应当尽可能少地与其他实体发生相互作用。即一个对象应该对其他对象有尽可能少的了解,不和陌生人说话。

开闭原则

        开放-封闭原则(OCP:The Open-Close Principle)开放扩展,封闭修改。软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。即当需求发生变化时,应该通过扩展来实现新的功能,而不是修改原有的代码。

依赖倒置原则

        依赖倒置原则(DIP:Dependency Inversion Principle),高层模块不应该直接依赖于底层模块的具体实现,而应该依赖于底层的抽象。接口和抽象类不应该依赖于实现类,而实现类依赖接口或抽象类。

接口隔离原则

       接口隔离原则(ISP:Interface Segregation Principle),一个对象和另外一个对象交互的过程中,依赖的内容最小。也就是说在接口设计的时候,在遵循对象单一职责的情况下,尽量减少接口的内容。客户端不应该依赖于它不需要的接口。即一个类应该只依赖于它需要的接口,而不是依赖于整个接口集合。

组合复用原则

        组合/聚合复用原则(CRP:Composite Reuse Principle),优先使用组合或聚合关系,而不是继承关系来达到代码复用的目的。通过对象组合可以更灵活地实现代码复用。

简洁版七大原则概要

  • 单一职责:对象设计要求独立,不能设计万能对象。
  • 开闭原则:对象修改最小化。
  • 里式替换:程序扩展中抽象被具体可以替换(接口、父类、可以被实现类对象、子类替换对象)
  • 迪米特:高内聚,低耦合。尽量不要依赖细节。
  • 依赖倒置:面向抽象编程。也就是参数传递,或者返回值,可以使用父类类型或者接口类型。从广义上讲:基于接口编程,提前设计好接口框架。
  • 接口隔离:接口设计大小要适中。过大导致污染,过小,导致调用麻烦。
  • 组合复用:尽量使用组合对象,而不是继承来达到复用目的。

顺口溜:组里依接迪开单(组里依姐弟开单)

更多消息资讯,请访问昂焱数据(https://www.ayshuju.com)

你可能感兴趣的:(java,jvm,开发语言)