[摘要] 今天的 BIM小知识 笔者给大家带来的是面向对象的概念。我们经常看到很多文章中对于BIM的解释中都会提到面向对象这个词,或者说BIM 采用
今天的 BIM小知识 笔者给大家带来的是面向对象的概念。我们经常看到很多文章中对于BIM的解释中都会提到面向对象这个词,或者说BIM 采用面向对象的方法描述包括三维几何信息在内建筑的全面信息等等,那幺面向对象到底是什幺意思?
面向对象(Object Oriented,OO)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术[1] 发展到一定阶段后的产物。其概念基本包含如下内容:
类别(Class)
类别为对象的规格,定义对象的属性(attribute)、方法(method)。类别可视为对象的模子,例如:“生物”类别,定义了名称、种类…等属性及生长、繁殖、死亡…等方法,所有属于生物的对象都具有这些成员(member),这些成员也可视为这些对象的接口(interface)。
对象(Object)
对象为类别程序执行时期(runtime)的实例(instance),能够藉由呼叫对象的方法进行运算及拥有自己的状态(state),例如: 你跟我都是属于 “人”这个类别,你我都具有“姓名”这个属性,但很有可能我们的姓名是不一样的,也就是我们各自拥有不同的状态。
继承(Inheritance)
子类别(subclass)可藉由继承父类别(super class)拥有父类别的所有成员,并可额外拥有自己的成员或是覆写(override)父类别的方法,子类别是父类别的一种,所以父类别也能够视为所有子类别的接口,例如: “猫”类别与“狗”类别都是继承自 “生物”类别,他们都具有生物的成员,也各自拥有自己其他的成员,猫可能有 “抓老鼠”这个方法,狗有“看门”这个方法。
封装(Encapsulation)
封装或是信息隐藏(Information Hiding)目的在将实作的细节与私有成员隐藏起来,对于该对象的操作只能根据其公开成员,就像我们没办法由芯片的成品直接了解其电路设计一样。
数据抽象化(Data Abstraction)
数据抽象化目的在将对象的接口与实作分开来,例如:对于“汽车”对象,我们只要知道它能驾驶就够了,至于怎幺制造生产对我们不是太重要。抽象数据类型(ADT, Abstract data type)为一种特别的数据型态,它用以表示类别的接口,一个类别能够实现许多不同接口,例如: “狗”类别实现了“宠物”跟“朋友”的接口,你可以把牠当作宠物也可以当做朋友。
多型(Polymorphism)
多型是指不同的对象能够藉由相同的接口加以操作,结果会因为实作的不同而有异。例如:“狗”类别与“猫”类别都有实作“宠物”这个接口,你可以将狗跟猫都当作宠物看待,但身为宠物,狗跟猫表现出的行为是很不一样的。
当我们说一个程序语言支持面向对象,那它必须具有下列特性:
1. 它必需支持对象。
2. 对象必须属于某一类别。
3. 必需支持继承。
一个程序语言支持前两项特性,但不支持继承时只能称为对象基础语言(object-based language)。目前常见支持面向对象程序语言有:C 、Java、C#、VB.net。虽然C 语言不支持面向对象,但是由于语言本身弹性很大,能够直接操控内存,要实现面向对象也是可能的,如Linux 核心主要以C 语言撰写却能活用许多面向对象的概念。好了,今天的 BIM小知识 笔者给大家带来的面向对象的概念就给大家介绍到这里,希望能够帮助大家更好的理解BIM系统。