`
尚将军
  • 浏览: 34466 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

面向对象三大基本特性,五大基本原则

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


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

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


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



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


五大基本原则
单一职责原则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)
模块间要通过抽象接口隔离开,而不是通过具体的类强耦合起来
分享到:
评论

相关推荐

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

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

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

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

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

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

    面向对象的软件构造.pdf

    在《面向对象的软件构造》这篇文档中,作者首先强调了面向对象技术是四种思想的结合:一种结构化方法、一种可靠性纪律、一种认识论原则以及一种分类技术。这四个核心概念为理解面向对象编程提供了基础。 1. **结构...

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

    Java、C++、Python、C#等都是支持面向对象的编程语言,它们都有各自的面向对象特性实现方式。例如,Java和C++使用类和对象,Python则使用类和实例,C#引入了接口和泛型等特性。 五、面向对象的实战应用 在实际开发...

    delphi面向对象编程思想

    #### 五、面向对象编程的经验与实践 - **模块化设计**:将程序分解成多个独立的模块,每个模块负责一个具体的功能。 - **代码复用**:利用继承和组合等技术提高代码的复用率。 - **测试驱动开发**:先编写测试用例...

    面向对象的编程思想.rar

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

    python面向对象练习题.pdf

    #### 一、面向对象三大特性及作用 **1. 封装** 封装是面向对象编程中的一个重要概念,它通过隐藏类的内部细节并对外提供公共接口来保护数据的安全性和完整性。封装使得类的使用者不必关心类内部的具体实现,而只...

    《C#面向对象设计模式纵横谈》.pdf

    在设计模式的学习与应用中,一个至关重要的原则是了解面向对象的三大基本特性:封装、继承和多态。 - **封装**是指将对象的状态(属性)和行为(方法)封装在一个单独的单元或类中,并隐藏对象的实现细节,只暴露...

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

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

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

    2. **增强代码的可重用性**:面向对象的设计原则鼓励代码的复用,减少了重复编码的工作量。 3. **提高代码的可扩展性**:良好的面向对象设计可以轻松地适应未来的需求变化,扩展新功能更加便捷。 综上所述,《JAVA...

    面向对象的框架设计 new

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

    设计模式中的面向对象原则及其子模式

    虽然类继承是面向对象编程的一个基本特征,但在某些情况下,优先考虑对象组合而非类继承可能是更好的选择。原因在于: - **避免继承带来的问题**:继承可能会导致封装性受损,同时也难以在运行时动态地改变行为。 -...

    61条面向对象设计的经验原则

    **原则三十:** 在扩展类的功能时,尽量通过组合现有类来实现新特性。这样可以避免修改原始类的代码,保持代码的稳定性和可维护性。 **原则三十一:** 当扩展类的功能时,确保新增功能与原有功能紧密相关。这有助于...

    如何理解面向对象的概念

    - **设计模式的五大原则**(SOLID)是面向对象设计的基础: - 单一职责原则(Single Responsibility Principle) - 开放封闭原则(Open/Closed Principle) - 里氏替换原则(Liskov Substitution Principle) - ...

    电子书《面向对象程序设计与Java语言》(第0.1版)

    本书分为基础部分和提高部分两大板块,旨在全面覆盖面向对象程序设计的基本理论以及Java语言的实际应用。 #### 基础部分 基础部分包括第一章至第十章,重点介绍了程序设计语言的基础知识和面向对象技术的基本思想。...

    面向对象程序设计B课程考核

    #### 一、面向对象的基本概念与原理 面向对象程序设计(Object-Oriented Programming, OOP)是一种编程范式,其核心思想是将现实世界中的事物抽象为“对象”,并通过这些对象来设计软件系统。面向对象的四大特性...

Global site tag (gtag.js) - Google Analytics