zoukankan      html  css  js  c++  java
  • 面向对象的基本特征和原则

    基本特征
    抽象
    面向对象中的对象是指与程序有关的的一切事物,它有3个主要特性,分别是对象的标识、状态和行为。面向对象的程序是由对象组成的。类是具有共同状态和行为的对象的集合,是构造对象的模版,类构造对象的过程称为创建类的实例,实例就是具体的对象。
    抽象是指抽取出一些事物共同的状态和行为并定义成一个类的过程,状态可以用类的属性(字段)来表示,行为可以用类的方法来表示。
     
    封装
    封装是指对外隐藏了类的实现细节如属性和某些方法,仅对外提供公共接口,外界只需要调用类的公共接口即可而不用关心类内部的具体实现。
     
    继承
    继承是指在创建一个类时可以复用已存在的类的内容,并加入新的内容或者修改原有内容。被继承的类叫作父类(超类、基类),继承父类的类叫作子类(派生类)。
     
    多态
    多态是指程序中变量的具体类型和通过该变量调用的方法在编译期间无法确定,只有在运行期间才能确定。就是说,允许将子类类型的变量赋值给父类类型的变量。
     
    原则
    单一职责
    缩写是SRP,指就一个类而言,应该仅有一个引起它变化的原因。类功能应该只有一个,而不是多个。假如有多个原因需要修改类,类的功能就不是单一的,此时应该考虑类的拆分。
     
    开放-封闭原则
    缩写是OCP,指对扩展开放,对修改关闭。程序的抽象层比如抽象类、接口在增加新功能时不需要修改,而只要在程序的实现层上修改或者扩展新的类。当然绝对的对修改关闭是不可能的,因为总会存在一些无法禁止它修改抽象层的变化,因此程序设计人员应该判断出需要禁止修改抽象层的变化,当出现这些变化时就可以通过修改实现层来应对。
     
    里氏替换原则
    缩写是LSP,指子类型必须能够替换它们的父类型。当把父类型替换成子类型,程序的功能不受影响。符合这个原则,父类型才能真正被复用,子类型也可以在父类型的基础上增加新的功能。
     
    依赖倒置原则
    缩写是DIP,指高层不应该依赖底层模块,两个都应该依赖抽象;抽象不应该依赖细节,细节应该依赖抽象。简而言之,就是针对抽象层编程而不是针对实现层编程。高层模块不应该依赖底层模块最常见的例子就是业务逻辑层调用数据访问层,数据库有很多种,数据访问层也相应的有多种实现,因此业务逻辑层不应该直接依赖某个具体的数据访问层实现,而是依赖数据访问层的抽象如抽象类、接口。依赖倒置原则的基础是里氏替换原则。
     
    迪米特法则
    缩写是LOD,也叫最少知识原则,指如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。这可以减少两个类的耦合。
     
    接口隔离原则
    缩写是ISP,指应该使用尽可能小的接口,而不要使用大的接口,这样就可以避免类去实现它们不需要的方法。
     
    合成/聚合复用原则
    缩写是CARP,指尽可能使用合成、聚合,不要使用继承。合成也称为组合,合成和聚合都属于关联。关联表示一种拥有关系,合成属于强的拥有关系,强调整体与部分的生命周期一致,聚合属于弱的拥有关系。代码表现形式是成员变量。与之相近的是依赖,依赖表示一种使用关系,代码表现是局部变量、方法的参数或者对静态方法的调用。
  • 相关阅读:
    Nucleus 的网络部分
    VS2005中TextBox的ReadOnly属性(转贴)
    VS2005中TextBox的ReadOnly属性导致的问题
    外部中断
    Linux操作系统文件链接问题
    IIS 服务不能自动启动
    转贴:[C++]static用法
    串口测试的一些体会
    字符串的两种声明方式
    Tornado 2.2 中vxsim出问题的解决方法
  • 原文地址:https://www.cnblogs.com/gjb724332682/p/9068604.html
Copyright © 2011-2022 走看看