面向对象的7大基本原则

    • 单一职责原则
    • 开放-封闭原则
    • 里氏替换原则
    • 依赖倒转原则
    • 迪米特法则Law of Demeter
    • 组合聚合复用原则CompositeAggregate Reuse Principle CARP
    • 接口隔离原则Interface Segregation Principle

单一职责原则

这里没啥好说的。比较简答。有利于解耦。职责的交叉容易使各自功能相互影响,产生不利于维护的代码,代码已读性也大大提高。单一职责有利于后期维护,如果每个类都各司其职,以后的功能改变更利于添加,并且产生不健壮的代码。

开放-封闭原则

软件实体(类、模块、方法)应该可以扩展、但是不可以修改。

扩展产生不一样的代码。不变产生稳定的代码,这里一切都是为了健壮与开发。变化才是灵魂。修改会产生不健壮的代码,增加维护的难度。开闭原则是面向对象的核心所在。遵循这个原则可以产生可维护、可扩展、可复用、灵活性好的代码。

里氏替换原则

子类型必须能够替换成父类型

这里本人感觉是开闭原则的体现。子类不能改变父类的行为。因此产生这里的一个特性。

依赖倒转原则

A.高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象。
B.抽象不应该依赖于具体实现,具体实现应该依赖于抽象。

这里有利于解耦。提高系统的稳定性,减少并行开发引起的风险,提高代码的可读性和可维护性。

依赖倒转原则其实可以说是面向对象的标志,编程如果从思考面向抽象编程,而不是面向过程,这是面向对象的一个很大好处。

迪米特法则(Law of Demeter)

叫作最少知识原则(Least Knowledge Principle 简写LKP),就是说一个对象应当对其他对象有尽可能少的了解,不和陌生人说话。英文简写为: LoD

解耦。

组合/聚合复用原则(Composite/Aggregate Reuse Principle CARP)

尽量使用合成/聚合达到复用,尽量少用继承。原则: 一个类中有另一个类的对象。

继承容易改变父类,不易于维护。代码逻辑混乱。

接口隔离原则(Interface Segregation Principle)

建立接口尽可能少

建立单一接口,不要建立庞大的接口,尽量细化接口,接口中的方法尽量少。也就是要为各个类建立专用的接口,而不要试图去建立一个很庞大的接口供所有依赖它的类去调用。依赖几个专用的接口要比依赖一个综合的接口更灵活。接口是设计时对外部设定的约定,通过分散定义多个接口,可以预防外来变更的扩散,提高系统的灵活性和可维护性。

你可能感兴趣的:(设计模式)