`
cat猫先生
  • 浏览: 4289 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

面向对象浅谈

阅读更多

一.对象的组成

在面向对象语言中,对象有几种模式:

一个class包含几个组成要素:

签名;用以描述事物的核心语义;

属性;对象的内部特征和状态的描述;

方法;对象的行为特征和描述;

public class User{              签名区

private String name;          属性区

private int age;

//省略get,set方法

public Stirng print(){        方法区

//******

}                     

}

属性和方法的区别在什么地方呢?

举例来说:人有头,眼,驱赶等等,这些就是属性,描述了人这个对象的内部特征,组成。而方法比如人可以行走,跑,这些组成了人的行为特征;

 

二.对象构成模型

通过对上述三种的不同组成,在现实世界中对象表现了三种形态和运作模式:

第一种属性-行为模式(属性-行为模型):

这一种表示对象同时拥有属性和行为方法,这是对象最为普遍的一种模式;

第二种属性模式(属性模型):

这种模式是指一个对象只拥有属性定义,和相应的get,set方法,java对这种对象统一起名为javaBean(无参的构造函数,get,set方法)。javaBean从其表现出来的特性看,可以作为数据的存储模式和数据的传输体;

javaBean的产生主要是为了强调对象的内在状态和特性,同时构造一个数据存储和数据传输的载体;

第三种行为模式(行为模型):

这种模式指的是构成一个对象的主体是一系列方法,而并不含有具体的属性状态,或者说就算含有一些属性定义,也是一些无状态的协作对象,运行在这种模式下的对象我们称之为“无状态对象”;

 

三.对象关系模型

以上所列是对象的构成模型,下面我们再讨论下对象的关系模型;

对象的构成模型是从对象的内部结构的角度对面向对象编程中的基本元素进行的分析。对象的关系的模型顾名思义是从对象的外部交互来对对象进行分析

(1)从属关系:一个对象在逻辑语义上隶属于另外一个对象;

(2)协作关系:对象之间通过协作来共同表达一个逻辑语义;

 

这两种关系在不同的面向对象语言中分别拥有不同的表现形式和逻辑意义;

 

下面我们来进行仔细分析:

(1)对象的从属关系:

主要是指一个对象在逻辑语义上隶属于另外一个对象;

针对此句我们应该仔细分析,有两种变现形式:

a.归属

归属的含义很直观,比如一个人归属于一个国家,一个轮胎归属于一台汽车。如果将这种状况映射为面向对象语言就是组合和聚合的概念;

在编程语言的体现主要就是相互引用的形式存在;

b.继承

继承我就不多做解释了。

继承关系在面向对象编程语言中,主要以原生语法的形式获得支持;

 

(2)对象的协作关系:

对象的从属关系从现实世界逻辑语义的角度描述了对象与对象之间的关系。协作关系主要是围绕着对象的行为动作特征来进行处理;

当对象的行为需要其他对象进行配合时,对象之间就形成了协作关系;

对于这句话来仔细理解:

比如一个人跑步需要手和脚进行协作,这就带来了一个协作;所以对象之间的协作需要从更高的一个层次来看。

软件大师Martin Fowler曾经说过一个对象在绝大多数情况下都不是孤立存在的,它总是需要通过与其他对象的协作来完成其自身的业务逻辑。

但是这就带来了另外一个问题:如何来管理对象和协作对象之间的关系?

 

总结:

面向对象的基本观点:

1.每一种对象的构成模型,都有其特定的应用范围;

如属性模型适合作为数据传输,数据映射;

行为模型适合对动作进行响应;

2.将对象运作在属性-行为模型上,最符合面向对象编程思想的本意;

当对象运作在“属性-行为”模型上时,我们能够最大程度的应用各种设计模式;

当对象运作在“属性-行为”模型上时,我们能够最大程度的发挥对象之间的协作能力;

3.当在进行对象建模的,我们不应僵硬的套用以上对象构成模型,要结合具体情况进行分析;

4.建立对象之间的关系模型是面向对象编程的核心内容;

 

以上内容摘自<<struts2技术内幕>>

分享到:
评论

相关推荐

    浅谈面向对象程序设计

    面向对象程序设计(Object-Oriented Programming,简称OOP)是一种重要的编程范式,自Windows图形用户界面(GUI)普及以来,它已成为主流的程序设计方法。本文将深入探讨面向对象程序设计的核心概念、特点以及它与...

    浅谈java面向对象和引用

    ### 浅谈Java面向对象与引用 在Java学习过程中,对于面向对象的理解和引用机制的掌握是至关重要的。本文将围绕这两个概念进行深入探讨,并针对初学者常见的疑惑点进行解答。 #### Java面向对象基础 Java是一种...

    浅谈面向过程与面向对象编程思想_以五子棋小游戏开发为例

    面向过程与面向对象是两种不同的编程范式,它们在计算机科学中被广泛应用,并在五子棋小游戏的开发中体现得尤为明显。 首先,让我们来探讨面向过程的编程思想。面向过程的编程方法注重于算法的实现,将程序分解为一...

    浅谈面向对象建模语言UML.pdf

    根据提供的文件信息,本文将深入探讨面向对象建模语言UML的相关知识点,涵盖面向对象程序设计的基本概念、模型与建模的重要性及原则,以及UML的基本组成部分。 ### 一、面向对象程序设计 面向对象程序设计(Object...

    浅谈javascript面向对象编程

    ### 浅谈JavaScript面向对象编程 #### 一、概述 面向对象编程(OOP)是一种编程范式,它使用“对象”来设计软件。在JavaScript中,尽管语言本身并不支持传统的类(class)概念,但开发者可以通过原型继承和其他技术来...

    在Objective-C中浅谈面向对象.doc

    在Objective-C中浅谈面向对象.doc

    浅谈Java面向对象程序设计.pdf

    "浅谈Java面向对象程序设计" Java是一种面向对象的高级编程语言,其核心思想是模拟现实生活中的求解过程。面向对象程序设计是人类思维自然化的结果,是从低级到高级的发展结果。在Java语言中,面向对象内容主要包括...

    C#面向对象设计模式纵横谈 12种设计模式

    在编程领域,设计模式是解决常见问题的经过验证的、可重用的解决方案。...通过阅读《C#面向对象设计模式纵横谈》一书,你将能够深入了解这些模式的实现细节和应用场景,从而在实际开发中游刃有余。

    浅谈Oracle8i中面向对象的数据功能.pdf

    Oracle8i是一款重要的关系型数据库管理系统,但在面向对象的数据功能方面也有所突破。本文主要探讨了如何在Oracle8i中利用面向对象的特性来构建新一代的数据库系统,并结合传统关系数据库的优势,实现二者的融合。 ...

    JavaScript面向对象编程指南(第2版).rar

    7. 继承模式:浅谈原型链继承、寄生组合继承、原型式继承等常见的JavaScript继承模式。 8. 多态实践:通过函数重载、鸭子类型等方式实现多态性。 9. 静态方法与静态属性:类中定义的静态方法和属性,不依附于实例...

    总结一——浅谈Java的类与对象

    在Java编程语言中,类与对象是核心概念,它们构成了面向对象编程的基础。这篇博文将深入探讨这两个概念,以及它们如何...通过阅读“浅谈Java的类与对象”这篇文档,你将能更深入地了解这些核心概念,提升你的编程技能。

    Struts2 技术内幕读书笔记(1)

    ##### 面向对象浅谈 面向对象编程(Object-Oriented Programming,OOP)是一种软件开发范式,它通过模拟现实世界中的对象及其交互来构建程序结构。这种编程方式不仅能够简化程序的复杂度,还能够提高代码的复用性...

    C#面向对象设计模式纵横谈(

    ### C#面向对象设计模式纵横谈(6):Prototype 原型模式(创建型模式) #### 概述 在面向对象编程中,设计模式是一种被广泛接受的解决方案,用于解决常见的软件设计问题。其中,原型模式(Prototype Pattern)属于...

    9.2 浅谈函数与方法的区别|高级部分:面向对象|Python3.8入门 & 进阶 & 原生爬虫实战完全解读

    9.2_浅谈函数与方法的区别|高级部分_面向对象|Python3.8入门_&_进阶_&_原生爬虫实战完全解读

    浅谈Java和C#在面向对象上语法的区别

    面向对象是现代编程语言的核心概念,它通过模拟现实世界的实体,将数据和操作数据的方法封装在一起,以提高代码的可读性、可维护性和复用性。Java和C#都是支持面向对象编程的语言,但在语法层面上存在一些差异。本文...

    C#面向对象设计模式纵横谈-创建型模式

    在编程领域,面向对象设计模式是一种经过验证的解决常见问题的方法论,它们是软件开发中的最佳实践。创建型设计模式是面向对象设计模式的一种类型,主要关注对象的创建过程,旨在提供灵活、可扩展和易于管理的对象...

    浅谈对c# 面向对象的理解

    一、了解面向对象 1、概念基本理解:1)、一个个体可以看做是一个对象,例如:人这个个体; 2)、有共同属性的一类作为一个个体,例如:学生、白领、农民工; 3)、结构体是用户自定义的数据类型,可以定义不同数据...

    浅谈c# 面向对象之类与对象

    因此,在面向对象中,类是面向对象编程的基本单元。类与类之间交互。 2、类的定义:一个类都可以包含2种成员:字段和方法。 1)类的字段一般代表类中被处理的数据(变量); 2)类的方法大多数代表对这些数据的处理...

Global site tag (gtag.js) - Google Analytics