`

面向对象的三大基本特征和五大基本原则

 
阅读更多

透切理解面向对象三大基本特性是理解面向对象五大基本原则的基础.


三大特性是:封装,继承,多态  

 

所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。 简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。


所谓继承是指可以让某个类型的对象获得另一个类型的对象的属性的方法。它支持按级分类的概念。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。继承的过程,就是从一般到特殊的过程。要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。继承概念的实现方式有二类:实现继承与接口继承。实现继承是指直接使用基类的属性和方法而无需额外编码的能力;接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力;

 

所谓多态就是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。

 

1. 封装:将客观事物抽象成类,每个类对自身的数据和方法实行protection(private,protected,public)
2. 继承:广义的继承有三种实现形式:实现继承(指使用基类的属性和方法而无需额外编码的能力)、可视继承(子窗体使用父窗体的外观和实现代码)、接口继承(仅使用属性和方法,实现滞后到子类实现)。前两种(类继承)和后一种(对象组合=>接口继承以及纯虚函数)构成了功能复用的两种方式。
3. 多态:是将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。


五大基本原则 


单一职责原则SRP(Single Responsibility Principle)
是指一个类的功能要单一,不能包罗万象。如同一个人一样,分配的工作不能太多,否则一天到晚虽然忙忙碌碌的,但效率却高不起来。

开放封闭原则OCP(Open-Close Principle) 
一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。比如:一个网络模块,原来只服务端功能,而现在要加入客户端功能,那么应当在不用修改服务端功能代码的前提下,就能够增加客户端功能的实现代码,这要求在设计之初,就应当将服务端和客户端分开,公共部分抽象出来。

替换原则(the Liskov Substitution Principle LSP) 
子类应当可以替换父类并出现在父类能够出现的任何地方。比如:公司搞年度晚会,所有员工可以参加抽奖,那么不管是老员工还是新员工,也不管是总部员工还是外派员工,都应当可以参加抽奖,否则这公司就不和谐了。

依赖原则(the Dependency Inversion Principle DIP)

具体依赖抽象,上层依赖下层。假设B是较A低的模块,但B需要使用到A的功能,这个时候,B不应当直接使用A中的具体类: 而应当由B定义一抽象接口,并由A来实现这个抽象接口,B只使用这个抽象接口:这样就达到了依赖倒置的目的,B也解除了对A的依赖,反过来是A依赖于B定义的抽象接口。通过上层模块难以避免依赖下层模块,假如B也直接依赖A的实现,那么就可能造成循环依赖。一个常见的问题就是编译A模块时需要直接包含到B模块的cpp文件,而编译B时同样要直接包含到A的cpp文件。

 

接口分离原则(the Interface Segregation Principle ISP) 
模块间要通过抽象接口隔离开,而不是通过具体的类强耦合起来

 

http://www.cnblogs.com/hnrainll/archive/2012/09/18/2690846.html

http://www.jobui.com/mianshiti/it/chengxuyuan/1486/

分享到:
评论

相关推荐

    面向对象的三大特性五项原则

    ### 面向对象编程五大基本原则 除了三大特性之外,面向对象编程还遵循一系列基本原则,以提高软件的质量、可维护性和可扩展性。 #### 单一职责原则(SRP) 单一职责原则指出一个类应该只有一个引起它变化的原因。...

    面向对象设计的基本原则和实践建议

    以下是对这些基本原则和实践建议的详细阐述: 1. **单一职责原则(Single Responsibility Principle, SRP)**:每个类或模块应该只有一个引起变化的原因。这意味着一个类应专注于完成一个特定的任务,而不是承担...

    面向对象七大基本设计原则.pdf

    面向对象七大基本设计原则通常是指SOLID原则,它是一组面向对象设计的指导原则,旨在使软件更加可维护和可扩展。SOLID由以下五个原则组成: 1. 单一职责原则(Single Responsibility Principle, SRP):一个类应该...

    面向对象设计三要素五原则六视点

    面向对象设计的核心在于其三大基本要素:封装、继承与多态。这些要素不仅定义了面向对象编程的基本结构,还深刻地影响着软件的设计和实现。 #### 封装(Encapsulation) 封装是面向对象编程的基础之一,它通过将...

    面向对象JavaScript精要(英文原版pdf)

    - **第二章:面向对象编程简介**:解释OOP的基本概念和原则。 - **第三章:JavaScript中的类和对象**:详细介绍如何使用JavaScript创建类和对象。 - **第四章:继承**:探讨JavaScript中实现继承的不同方式。 - **第...

    java开发面向对象原则

    面向对象原则是编写高质量代码的基础,以下是五大基本原则: 一、面向接口编程而不是面向实现(Code to an interface rather than to an implementation) 面向接口编程是指在编写代码时,应该面向抽象的接口,而...

    面向对象5大原则.pdf

    从给定文件的内容来看,文档是在讨论面向对象设计的五大基本原则,但由于扫描识别过程中的问题,文档内容显得有些混乱和不完整。尽管如此,我们仍可以理解这些原则是软件设计领域的核心理念,它们的实施有助于改善...

    深入PHP面向对象、模式与实践_第3版_高清PDF(附完整源码)

    在这种背景下,《深入PHP面向对象、模式与实践》第三版应运而生,成为了PHP开发者提升自身技能、深入理解和实践面向对象编程、设计模式以及软件开发最佳实践的重要参考书籍。 本书以PHP面向对象编程的基础概念为...

    面向对象培训资料 面向对象培训资料

    面向对象编程(Object-Oriented Programming,简称OOP)是一种重要的编程范式,它基于“对象”的概念,通过封装、继承和多态等核心特性,实现了代码的复用和模块化,极大地提高了软件开发的效率和质量。本培训资料...

    delphi面向对象编程思想

    通过学习本书《delphi面向对象编程思想》,开发者不仅可以深入了解面向对象编程的基本概念,还可以掌握如何在实际项目中有效地应用这些概念和技术。这对于提升编程技能和开发高质量的应用程序至关重要。

    面向对象的编程思想.rar

    面向对象的四个基本特征包括封装、继承、多态和抽象。 1. 封装:这是面向对象编程的核心特性之一,它隐藏了对象内部的实现细节,只对外提供接口进行交互。这样可以保护数据不被外部随意访问,提高程序的安全性和...

    c++ 面向对象设计五大原则

    面向对象设计的主要任务就是类的设计,不少面向对象(OO)的先驱和前辈已经提出了很多关于类的设计原则,用于指导OOP,其中就包括类设计的五项基本原则。 1.单一职责原则(Single Resposibility Principle,SRP) ...

    戏说面向对象程序设计(C#版).pdf

    - **注重代码质量**:遵循面向对象的基本原则如封装、继承、多态等,提高代码的可读性和可维护性。 - **重构**:通过重构代码,优化程序结构,使其更加符合面向对象的最佳实践。 #### 三、面向对象设计的关键原则...

    戏说面向对象设计原理

    《戏说面向对象设计原理》通过一系列生动的故事和例子,深入浅出地介绍了面向对象设计的基本原理及其在实际开发中的应用。这些原则不仅对于初学者来说非常重要,即使是经验丰富的开发者也能从中获得新的启示。通过...

    JAVA面向对象编程_孙卫琴2.pdf

    #### 三、面向对象的核心思想和概念 1. **封装**:封装是将数据和操作这些数据的方法捆绑在一起,对外隐藏内部细节,只暴露必要的接口。在Java中,可以通过访问修饰符(如public、private)来控制成员变量和方法的...

    面向对象的框架设计 new

    - **CD7框架**:CD7是一个非常有影响力的Web应用框架,它的设计充分考虑了面向对象的原则和技术。该框架采用了单继承和公共继承的方式,以保持代码的简洁性和易于使用性。此外,CD7框架利用面向对象的多态性和虚拟...

    面向对象的一般原则 六大原则

    面向对象设计的六大基本原则是软件开发领域中非常重要的概念,这些原则旨在提高代码的质量、可维护性和可扩展性。在本篇文章中,我们将详细介绍这六个原则,并通过具体案例加深理解。 ### 一、单一职责原则 (SRP, ...

Global site tag (gtag.js) - Google Analytics