程序猿要想设计出高内聚、低耦合、易扩展、易维护、易测试的面向对象系统。一般需要遵循面向对象编程的七大原则。但这并不是说一定要遵循七大原则,但很多场景下需要程序员权衡利弊,进行取舍。选取最适合的方案,而不是一味遵循七大原则。
接下来来介绍何为面向对象编程的七大原则。
单一职责原则(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)