`
realnicky
  • 浏览: 61847 次
  • 来自: 杭州
社区版块
存档分类
最新评论

7、面向对象设计:共性VS个性

 
阅读更多

一尺之捶,日取其半,万世不竭!

7.2 对象和类的粒度

7.2.1 CPU难题

        处理有包容关系的类,用继承机制还是聚合机制?

        多态性的机制可以大量减少条件判断语句的重复。

       继承和动态绑定

  7.2.2 继承的粒度

类的定义:类是对象的抽象,是一系列既有共性又有个性的对象的高度概括。

对象的共性和个性是相对的而不是绝对的。

对继承粒度问题的认识:

1.必须基于需求来确定继承的粒度。如果提取对象的某一个共性对于我们要解决的问题没有任何帮助,或只有很小的帮助,那就没有必要因为提取共性而增加继承数的复杂度。

2.对象的某些共性更适合于用属性而不是用新的基类和派生类来表达。

3.利用类和对象是模拟现实世界的手段而不是目的。我们不能为了提取类而提取类。我们最终的目的是最大限度地实现代码复用,提高软件质量。因此,如果不能达到复用代码地目的,就没有必要再提取新地类了。

分享到:
评论

相关推荐

    面向对象程序设计类和对象优秀文档.ppt

    这些都是面向对象设计的重要特性,它们帮助开发者构建出复杂且灵活的系统。 总之,理解和掌握面向对象编程中的类和对象是成为一名合格的程序员必不可少的技能。通过类的抽象和对象的实例化,我们可以更好地模拟现实...

    面向对象程序设计C++:第4章 继承.ppt

    面向对象程序设计C++中的第四章重点讲解了继承这一核心概念。继承是自然界中的遗传现象在编程中的体现,它允许新的类(派生类)从已有类(基类)继承特性,包括数据成员和成员函数,同时可以添加自己的独特属性和...

    Python面向对象方面的答辩

    Python面向对象编程思想的核心概念和设计原则 面向对象是一种编程思想,它以人类对现实世界的观察为基础,发展出了几个关键的概念:多态、封装、继承。大部分时间,我们可以以面向过程作为指导思想编写程序,但是当...

    面向对象的供配电CAD系统中的信息建模.pdf

    3. 类和继承设计:根据对象的共性和个性设计类和继承结构。例如,可以设计一个基础类表示电气元件,然后根据具体的设备类型(如断路器、变压器等)设计子类。 4. 实例化与数据绑定:在CAD系统中实例化对象,并将...

    面向对象的智能化FBM CAD系统.pdf

    面向对象设计的核心概念之一是识别系统中的对象以及它们之间的关系。耐火砖模具设计能够基于耐火砖原型的系列化和标准化,通过面向对象的机制,将耐火砖的共性和个性分离出来,形成基类和派生类。这种类的继承与派生...

    系统分析课件,注明老师编写

    【系统分析课件,注明老师编写 - 设计模式详解】主要探讨了面向对象设计中的一个核心原则:单一职责原则(Single-Responsibility Principle,SRP)。面向对象设计(OOD)和面向对象编程语言(OOPL)的目标是提高程序...

    基于面向对象模型库的多模型决策支持系统 (2002年)

    ### 基于面向对象模型库的多模型决策支持系统 #### 一、引言 随着信息技术的发展,决策支持系统(Decision Support System, DSS)成为企业管理和决策中不可或缺的一部分。传统的DSS主要关注单一模型的决策过程,但...

    Thinking C++ 中文版

    - **Simula-67**: Simula-67被认为是第一种面向对象编程语言,它最初是为了模拟问题而设计的。通过将具有相似特性和行为的对象归类到一起形成“类”的概念,Simula-67为后来的OOP语言奠定了基础。 - **Smalltalk**: ...

    Java程序设计课程教学改革的探索与实践.pdf

    这些子任务涵盖了开发工具的安装和使用、程序设计的基础知识、面向对象设计能力、异常处理能力、界面设计能力、数据库使用能力、文件操作能力、多线程设计能力和网络通信能力等多个方面。每个子任务都是一个独立的...

    船用机电设备协同CAD系统平台开发.pdf

    协同CAD系统在实际工程应用中,需要解决异地协同数字化设计的共性技术问题,并实现面向数字化设计的个性化协同CAD工具。这包括了对船用机电设备的快速设计需求,以及如何在不同企业间实现设计数据和资源共享等。 6....

    高校科研管理系统的设计与开发说明书--计算机毕业论文.doc

    6. **程序实现**:使用C++编程语言实现系统功能,考虑面向对象的设计原则,以提高代码的可读性和可维护性。 7. **系统调试**:通过单元测试和综合测试,确保每个功能模块的正确性和稳定性,以及整个系统的兼容性和...

    Java教学中计算思维能力培养.pdf

    在Java语言教学中,知识体系内容可划分为程序设计语言的共性知识、面向对象的知识体系、Java高级特性三个部分。程序设计语言的共性知识主要包含数据的表示和程序流程问题,旨在建立数据类型和程序执行流程的概念,并...

    Java入门需掌握的30个基本概念

    3. **面向对象**:Java是基于面向对象编程(OOP)的,强调对象及其接口。与C++相比,Java不支持多重继承,但提供了接口作为替代方案。 4. **健壮性**:Java采用安全的指针模型,减少了内存重写和数据崩溃的可能性,...

    网格化智能移动警务综合应用系统建设方案.docx

    系统采用移动终端(手机)/浏览器/服务器/数据库多层架构技术,使用 Java 语言按照规范进行设计、开发,保证系统的操作和运行具有良好的灵活性,支持面向对象、跨平台、快速集成和代码重用机制,适用于多种操作系统...

    小区管家java

    - **封装、继承和多态**:这三个面向对象的特性在项目中广泛运用,如不同的管理角色(管理员、业主)可能有共性和个性,可以通过继承实现代码复用。 - **异常处理**:Java的异常处理机制用于捕获和处理程序运行时...

    基于C++语言下的跨平台软件开发设计研究

    在研究C++语言的跨平台开发设计时,既要利用C++语言的高性能和灵活性,也需要解决跨平台软件开发中遇到的共性和个性问题。现代软件开发市场中,跨平台软件设计是非常具有市场潜力的,因为它能够帮助产品快速覆盖广泛...

    界面效果开发实例

    8. **多态和继承**:利用面向对象的特性,开发者可以创建基类,然后通过继承和多态来实现不同界面元素的共性和差异。 9. **响应式设计**:随着移动设备的普及,响应式界面设计变得越来越重要。Delphi提供了一些工具...

    【销售业务】面向SaaS应用的业务逻辑定制框架的研究.docx

    设计过程包括识别业务逻辑相关的共性和可变性,分析可变性以确定核心业务对象和属性,然后抽象出通用的结构化自然语言模板。 业务规则模板通常基于ECA规则,由事件、条件和动作组成。考虑到定制框架的需求,事件也...

Global site tag (gtag.js) - Google Analytics