切换导航
首页
技术问答
编程语言
前端开发
移动开发
开发工具
程序设计
行业应用
CMS系统
服务器
频道导航
▸ PHP
▸ Java
▸ Java SE
▸ Python
▸ C#
▸ C&C++
▸ Ruby
▸ VB
▸ asp.Net
▸ Go
▸ Perl
▸ netty
▸ Django
▸ Delphi
▸ Jsp
▸ .NET Core
▸ Spring
▸ Flask
▸ Springboot
▸ SpringMVC
▸ Lua
▸ Laravel
▸ Mybatis
▸ Asp
▸ Groovy
▸ ThinkPHP
▸ Yii
▸ swoole
▸ HTML
▸ HTML5
▸ JavaScript
▸ CSS
▸ jQuery
▸ Bootstrap
▸ Angularjs
▸ TypeScript
▸ Vue
▸ Dojo
▸ Json
▸ Electron
▸ Node.js
▸ extjs
▸ Express
▸ XML
▸ ES6
▸ Ajax
▸ Flash
▸ Unity
▸ React
▸ Flex
▸ Ant Design
▸ Web前端
▸ 微信小程序
▸ 微信公众号
▸ iOS
▸ Android
▸ Swift
▸ Hybrid
▸ Cocos2d-x
▸ Flutter
▸ Xcode
▸ Silverlight
▸ cocoa
▸ Cordova
前端之家
设计模式
OOP & OOD 及其模型
OOP & OOD 及其模型
2020-02-18
设计模式
前端之家
前端之家
收集整理的这篇文章主要介绍了
OOP & OOD 及其模型
,
前端之家
小编觉得挺不错的,现在分享给大家,也给大家做个参考。
OOP & OOD 及其模型
来源:http://www.elementsoft.com作者: 爱乐门
面向对象的编程
方法
OOP是九十年代才流行的一种软件编程
方法
。它强调对象的“抽象”、“封装”、“继承”、“多态”。 我们讲程序设计是由“数据结构”+“算法”组成的。从宏观的角度讲,OOP下的对象是以编程为中心的,是面向程序的对象。我们今天要讲的OOD是面向信息 的对象,是以
用户
信息为中心的。
面向对象的编程 OOP
在分析OOD之前,先让我们回顾以下OOP技术的历史。
面向对象技术最初是从面向对象的程序设计开始的,它的出现以60年代simula语言为标志。80年代中后期,面向对象程序设计逐渐成熟,被计算机界理解和接受,人们又开始进一步考虑面向对象的开发问题。这就是九十年代以Microsoft Visual系列OOP软件的流行的背景。
传统的结构化分析与设计开发
方法
是一个线性过程,因此,传统的结构化分析与设计
方法
要求现实系统的业务管理规范,处理数据齐全,
用户
能全面完整地其业务需求。 传统的软件结构和设计
方法
难以适应软件生产
自动
化的要求,因为它以过程为中心进行
功能
组合,软件的扩充和复用能力很差。
对象是对现实世界实体的模拟,因面能更容易地理解需求,即使
用户
和分析者之间具有不同的教育背景和工作特点,也可很好地沟通。
区别面向对象的开发和传统过程的开发的要素有:对象识别和抽象、封装、多态性和继承。
对象(Object)是一个现实实体的抽象,由现实实体的过程或信息牲来定义。一个对象可被认为是一个把数据(
属性
)和程序(
方法
)封装在一起的实 体,这个程序产生该对象的动作或对它接受到的外界信号的反应。这些对象操作有时称为
方法
。对象是个动态的概念,其中的
属性
反映了对象当前的状态。 类(Class)用来描述具有相同的
属性
和
方法
的对象的集合。它定义了该集合中每个对象所共有的
属性
和
方法
。对象是类的实例。
由上分析不难看出,尽管OOP技术更看中
用户
的对象模型,但其目的都是以编程为目的的,而不是以
用户
的信息为中心的,总想把
用户
的信息纳入到某个
用户
不感兴趣的“程序对象”中。
Java简介及其与OOD的关系
Java是一个由Sun发展的语言和其相关的发展环境,它是一个新的面向对象式的OOP语言。它有内建的能力以发展Client/Server结构下 的程序。但它有别于其它的OOP语言,它的Applet又具有OOD的特性。以下简要介绍一下。 Java另一个重要的特性是它所产生的结果
文件
可以在很多不同的操作系统,甚至不同的机器上执行。
但由于Web的受欢迎,Java这个语言于是被拿来做为HTML语法扩充的工具。Web受欢迎的程度可以说是非常空前的,主要的原因除了 Internet的风行外,最重要的是它
支持
了图形
显示
的能力。但就因为Web受欢迎的速度太快,HTML的发展根本跟不上
用户
的需求,所以主要的浏览器 客户程序供应商netscape等都不约而同的为HTML
加上
一些扩展,希望能引导HTML更高规格的走向。且不同的
用户
或供应商对于HTML应该提供哪 些
功能
常有很不同的意见,例如出版业者就很希望为HTML
加上
更精细的片面控制命令,使得HTTML可以成为一个电子出版的基础。 而且如果我们毫无限制的为HTML
加上
各种不同的
功能
,浏览器本身一定会成为一个怪物。其实现在的Netscape已经很可怕了。我们后面要讲的 VDML可以改变这种局面,由于它采用了“面向对象的信息”技术,它的应用领域几乎是不受限制的。从3.4节的图示可见其与VDML及HTML的关系。 以下是Java的几大特征:
面向对象式的程序语言
面向网络分布式的语言
面向多平台的
可直译也可编译执行
支持
多线程程序
是强韧且安全的
是简单且具有高执行效率的
程序系统的基本结构 IPO
我们知道程序系统的基本结构是IPO结构,即“输入数据Input”“处理数据Process”“
输出
数据Output”,然后再传到下一部,形成一 个不断的信息流,直至形成我们的最终产品,可以想象在未来的信息化社会中,我们的产品也可能仍是一个“信息
文件
”。 下图比较直观地说明了IPO模型下的信息处理过程。
上端的VDML是数据处理前的可视化数据。它可由具备VDML
功能
的浏览器观察。
主处理模块是由一系列的既各自独立又能协同工作,也可能是分布的Java Application组成。
下端的HTML是我们已知的面向
用户
信息的超文本。
由图可知,VDML/HTML两端均可
调用
Java Applet。充分说明是面向对象的信息。
面向对象的信息 OOD
面向对象的信息从前面的叙述中我们可以有所体会。它主要有两个特征:以对象化的信息为中心,信息是封装的。
传统的
方法
(Traditional Method),正如我们在2.3节中讲述的那样,每种类型的信息你都得学习它的工具的使用
方法
,这是我们今天这个信息时代所不能忍受的,也是一种人力资 源的浪费。从以下的图示里也可以看出,它是以纵向的老式IPO“大而全”为特征的。 OOD技术以
用户
信息为中心,对
用户
的信息无强求,无须刻意对信息规格化,可以是多媒体的超文本。以
用户
的自然的信息流为基础,更加人性化。
用户
信息 个人自理,各司其职,从而实现了对象化的信息,实现了信息的封装。 从上图里,我们可以看出 HTML和VDML分别从两端侵蚀着“老的程序P”,而以Java为代表的 VEPL(Visual Elementor Programming Laguage)语言也在蚕食着它的领地。
OOD主要由以下三部分组成:
VDML 可视化数据
标记
语言
Java VEPL 可视化元件编程语言
HTML 超连接超文本
标记
语言
可视数据
标记
语言VDML
从以上的图示中,我们大致可以看出VDML的作用及位置。我们还可以从另外一个角度看 VDML。
ASCII-More
ASCII文本浏览器
.txt
文件
Mosaic
超连接的文本浏览器
.mos
文件
HTML-Navigator
超连接的超文本浏览器
.html,.gif,...多媒体
文件
VDML-Elementor
可视化的数据
标记
语言
ext.vdml,.ext 可视化数据耦合
文件
从这个角度出发,我们不难看出VDML是一种活的动态的可视化数据
标记
语言。它可以动态的从网上的URL中下载.VDML耦合定义
文件
,然后再据此“可视化”该数据。 我们知道现有的浏览器是
支持
多种多媒体
文件
,只是要加载这些关联程序。从这个意义上讲,现有浏览器都是OOD的,只是只有VDML才是最开放的,最系统化的。
OOD 的几种现实产品
VRML 是虚拟现实
标记
语言Virtual Real Markup Language的缩写。它是由SGI公司提出的。它是四维空间的模型
标记
语言,主要用于购物及模仿现实世界,以及真实世界的交互作用。 OLE 及 OCX 是对 HTML 可处理的
文件
类型的扩充。如 .EPS .AVI 等媒体
文件
的处理即是采用此种
方法
。现今的 ActiveX 更是得到了系统的发展。 但所有这些
方法
,除了你得作这些 OLE/OCX 程序外,你还得在你的机器上安装这些“补丁”程序,牺牲资源自不必说。
用户
也无法扩充自己的OOD信息。所以,VDML 必将大行其道。
上一篇:关于软件测试的问与答(与神仙的对
下一篇:组合、聚合和关联的关系
猜你在找的设计模式相关文章
适配器模式-让不兼容的接口得以适配
适配器模式将一个类的接口转换成客户期望的另一个接口,使得原本接口不兼容的类可以相互合...
作者:前端之家 时间:2021-02-24
策略模式-定义一个算法族
策略模式定义了一系列算法族,并封装在类中,它们之间可以互相替换,此模式让算法的变化独...
作者:前端之家 时间:2021-02-24
设计模式之高质量代码
设计模式讲的是如何编写可扩展、可维护、可读的高质量代码,它是针对软件开发中经常遇到的...
作者:前端之家 时间:2021-02-24
模板方法模式-封装一套算法流程
模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中,使得子类可以在...
作者:前端之家 时间:2021-02-24
迭代器模式-统一集合的遍历方式
迭代器模式提供了一种方法,用于遍历集合对象中的元素,而又不暴露其内部的细节。
作者:前端之家 时间:2021-02-24
单例模式的五种实现方式及优缺点
单例模式(Singleton Design Pattern)保证一个类只能有一个实例,并提供一个全局访问点。
作者:前端之家 时间:2021-02-24
组合模式-统一的处理个别对象与组合对象
组合模式可以将对象组合成树形结构来表示“整体-部分”的层次结构,使得客户可以用一致的方...
作者:前端之家 时间:2021-02-24
装饰者模式-动态的包装原有对象的行为
装饰者模式能够更灵活的,动态的给对象添加其它功能,而不需要修改任何现有的底层代码。
作者:前端之家 时间:2021-02-24
观察者模式-将消息通知给观察者
观察者模式(Observer Design Pattern)定义了对象之间的一对多依赖,当对象状态改变的时候...
作者:前端之家 时间:2021-02-24
代理模式-访问对象的代理而非其本身
代理模式为对象提供一个代理,来控制对该对象的访问。代理模式在不改变原始类代码的情况下...
作者:前端之家 时间:2021-02-24
编程分类
算法
设计模式
多媒体技术
正则表达式
Elasticsearch
Flink
Hadoop
IDE
最新文章
• 适配器模式-让不兼容的接口
• 策略模式-定义一个算法族
• 设计模式之高质量代码
• 模板方法模式-封装一套算法
• 迭代器模式-统一集合的遍历
• 外观模式-简化子系统的复杂
• 单例模式的五种实现方式及
• 组合模式-统一的处理个别对
• 装饰者模式-动态的包装原有
• 观察者模式-将消息通知给观
热门标签
更多 ►
受约束
摘*
day25
Java常用类库
置信
lamda
留存
持续录入
年后
正则表达式30
3.17
regularexpre
匹
多模
适
20130322
基础理论
pathmunge
涵义
reec
tok
需要转义的特
资源分享
validationex
简明魔法
里弄
形如
源码实现
完备
actionscript