美文网首页
OPP七大设计原则

OPP七大设计原则

作者: YuKalix | 来源:发表于2021-01-13 22:00 被阅读0次

    一、单一职责原则(Single Responsiblity Principle, SRP)

    一个类负责一项职责
    一个类只做一件事

    二、开闭原则(Open Closed Principle, OCP)

    一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。在程序需要拓展的时候,不能去修改原有的代码
    使用接口和抽象类

    三、里氏替换原则(Liskov Substitution Principle, LSP)

    继承与派生的规则(子类可替换父类),子类可以做父类做的事
    衍生类能够在基类的基础上增加新的行为
    对开闭原则的补充

    四、依赖倒转原则(Dependency Inversion Principle, DIP)

    高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。即针对接口编程,不要针对实现编程。
    依赖倒转的核心思想是:面向接口编程

    造汽车举例子:
      假如,造汽车的第一步是:造车轮
      第二步是:根据车轮的大小造车底
      第三步是:根据车底的大小造车身
      最后一步是:根据车身的大小造出汽车。
      那么这个过程中的依赖关系是:汽车依赖于车身的设计,车身依赖于车底的设计,车底依赖于车轮的设计。
      各部分“零件”都互相依赖着,最后也能够把汽车组装成功.然而动一处牵其全身.

    正确的方式:
    首先,要创建四个接口,分别是,轮子,车底,车身,汽车。这四个接口里各自约定一些方法,比如说轮子的接口中,写一个带参的轮子尺寸方法。然后比如造汽车,造的是小轿车轮子的话,那么写一个实现这个接口的实现类,类名是小轿车车轮。要是现在突然又有新的需求,要造卡车轮子,那再写一个实现类来实现这个车轮的接口即可,其实这里用到了一个其他的原则(开闭原则:对修改关闭,对扩展开放),接口中的方法呢,是之前约定好的东西,是不允许修改的
    接口的存在最主要的目的就是为了便于扩展、和维护。
    依赖倒转原则是针对接口的,高层模块和底层模块都是依赖于抽象(接口)的。

    五、接口隔离原则(Interface Segregation Principle, ISP)

    建立单一接口,不要建立庞大臃肿的接口,尽量细化接口,接口中的方法尽量少。
    move()
    walk()
    run()

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

    尽量使用组合和聚合少使用继承的关系来达到复用的原则。

    # 推荐方式
    move():
      walk()
      run()
    # 不建议使用继承方式
    class move:
        pass
    
    class walk(move):
        pass
    
    class run(move):
        pass
    

    七、最小知识原则(迪米特法则)(Principle of Least Knowledge, PLK)

    一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立
    高内聚,低耦合(high cohesion low coupling)。

    相关文章

      网友评论

          本文标题:OPP七大设计原则

          本文链接:https://www.haomeiwen.com/subject/nogpaktx.html