面向对象思想

三大特性

  1. 封装
  2. 继承
  3. 多态
    编译时多态:主要指方法的重载
    运行时多态:三个条件(继承,重写,向上转型)

类图

  1. 泛化关系:描述继承关系,extend
  2. 实现关系:实现一个接口,implement
  3. 聚合关系:整体和部分不是强依赖,整体不存在,部分可以存在
  4. 组合关系:整体和部分强依赖,整体消失,部分跟着消失
  5. 关联关系:表示不同类对象之间的关联,这是一种静态关系,与运行过程无关,如1对1,1对多…
  6. 依赖关系:在运行过程中起作用,有三种形式:A 类是 B 类方法的局部变量;A 类是 B 类方法当中的一个参数;A 类向 B 类发送消息,从而影响 B 类发生变化

设计原则(S.O.L.I.D)

  1. S:单一责任原则

    修改一个类的原因只有一个

    让一个类只负责一件事,当这个类需要做过多的事情,应该分解这个类;如果一个类承担职责过多,就等于把这些职责耦合在一起,一个职责的变化可能削弱该类完成其他职责的能力。

  2. O:开放封闭原则

    类对扩展开放,对修改关闭

    添加新功能时不修改代码;装饰者模式,动态地将责任附加到对象上而不用修改代码。

  3. L:里氏替换原则

    子类必须可以替换所有父类对象

  4. I:接口分离原则

    不应该强迫客户依赖于它们不用的方法。

    因此使用多个专门的接口比使用单一的总接口要好

  5. D:依赖倒置原则

    高层模块不应该依赖于低层模块,两者都应该依赖于抽象;
    抽象不应该依赖于细节,细节依赖于抽象

    高层模块包含一个应用程序中重要的策略选择和业务模块,如果高层模块依赖于低层模块,那么低层模块的改动就会直接影响到高层模块,从而迫使高层模块也需要改动。

    依赖于抽象意味着:

    任何变量都不应该持有一个指向具体类的指针或者引用;
    任何类都不应该从具体类派生;
    任何方法都不应该覆写它的任何基类中的已经实现的方法。
    
  6. 其他常见原则

    1. 迪米特法则
      迪米特法则又叫作最少知识原则(Least Knowledge Principle,简写 LKP),就是说一个对象应当对其他对象有尽可能少的了解,不和陌生人说话。

    2. 合成复用原则
      尽量使用对象组合,而不是通过继承来达到复用的目的。

    3. 共同封闭原则
      一起修改的类,应该组合在一起(同一个包里)。如果必须修改应用程序里的代码,我们希望所有的修改都发生在一个包里(修改关闭),而不是遍布在很多包里。

    4. 稳定抽象原则
      最稳定的包应该是最抽象的包,不稳定的包应该是具体的包,即包的抽象程度跟它的稳定性成正比。

    5. 稳定依赖原则
      包之间的依赖关系都应该是稳定方向依赖的,包要依赖的包要比自己更具有稳定性。

参考:https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/面向对象思想.md

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值