`
lane_cn
  • 浏览: 52589 次
社区版块
存档分类
最新评论

也讨论一把:不必非oo不可

阅读更多

看了一篇讨论:
http://www.cnblogs.com/yimlin/archive/2006/11/30/578333.html
有些感想:并不是所有的行为都必须属于某个对象,有的行为似乎放在任何一个对象中都不合适,那就单独放在那里好了,没必要非要造出一个对象来,更不能把它硬安在某个对象上。

按照oop的方法,软件的逻辑架构可以分成下面几个层次:

1:基础设施层——这个层次解决的是物理问题,比如database gateway、网络通信、对象容器……这个部分与业务需求关系不大,是系统的物理条件。有很多技术框架帮助我们尽快的把这个层搭起来,比如web server、中间件、ACE。搞软件的公司会在这方面形成自己的技术积累。开始搞一个项目的时候,经常把以前的东西拿来复用,尽快进入后面的工作。

2:business对象——在这个层次上,业务要素出现了,业务领域中的概念在这里实现。比如一个航运公司的系统,这里就应该有航线、航班、座位、乘客、登机牌……这些对象应该拥有与实际业务领域相符的属性、方法。长期在某个业务领域开发的公司,在这方面也应该形成自己的技术积累,形成可以直接复用的对象模型。这个层次上也是有一些现成的产品可以用的,比如SAP、工作流引擎,可以在这些东西的基础上做定制开发。

3:business流程——这个流程不是指程序解决问题的流程,而是用户的商业活动的流程。他体现的是端到端的业务流程。比如:检票员为旅客办理登机牌。business流程的输入参数是business对象,输出参数也是business对象。business对象在这里组合、串接,实现业务流程的自动化。这个层次是在直接实现用户的需求。

4:UI和接口——这个层面调用business流程,将执行的结果交给软件的用户,或者别的系统。

在“3:business流程”这个层次上,并不是每个行为都可以在系统中找到一个归属的对象,这是正常的。没有必要为了oo而oo,一定要给某个行为找到一个对象。尤其是不能把这些行为硬安在某个不相关的business对象上,那样反而会使系统变得混乱,难以理解。business流程的独立存在不会误导任何人。

从一个大的范围上说,这些business流程的所属对象,应该是系统的使用人。不应该花太大的精力,过多的考虑这些行为应该属于哪个实体。

分享到:
评论

相关推荐

    sap abap oo实现alv框可编辑

    sap abap oo实现alv框可编辑

    设计模式——可复用的OO软件

    设计模式——可复用的OO软件

    SAP ABAP开发学习——第10课:OOALV(视频教程)

    SAP ABAP开发学习——第10课:OOALV(视频教程) 1.SAP ABAP开发入门学习 2.含视频教程学习、PPT、作业 3.视频非常清晰

    Oth-oo:Othéoo产品着陆页

    Oth-oo:Othéoo产品着陆页-源码

    实战OO 用例 建模

    实战OO_用例建模 实战OO_用例建模 实战OO_用例建模

    PEAR::DB::OO-开源

    PEAR::DB::OO 是一个抽象层,用于访问面向对象范式中的数据库表。 它面向 PHP 开发人员,是用 PHP 编写的。 它建立在 PEAR 的过程数据库抽象层 (PEAR::DB) 之上——请参阅 http://pear.php.net。

    oo2core_6_win64

    直接拷贝该文件到系统目录里:  1、Windows 95/98/Me...4、如果您的系统是64位的请将32位的dll文件复制到C:\Windows\SysWOW64目录,具体的方法可以参考这篇文章:win7 64位旗舰版系统运行regsvr32.exe提示版本不兼容

    oo 面向对象action

    oo学习

    go2oo:通过CLI进行HP OO操作-

    转到OO 通过CLI进行HP OO操作先决条件HP OO 10.x Central已安装并正在运行去设置安装去获取-u -t -v github.com/dorsha/go2oo (或下载为.zip / .tar.gz) 进行构建(从根目录)用法go2oo.exe --help 显示已部署的...

    javaE:\JAVA\OO Project Instructor Guide(门诊模块).pdf

    Java相关E:\JAVA\OO Project Instructor Guide(门诊模块).pdf E:\JAVA\OO Project Instructor Guide(门诊模块).pdf

    ABAP OOALV学习文档

    ABAP OOALV报表开发,定义变量,选择屏幕定义,创建类,调用函数,是学习OOALV很不错的学习资料

    [SAP ABAP开发技术总结]ALV详解(Fuction ALV 和OO ALV)

    [SAP ABAP开发技术总结]ALV详解(Fuction ALV 和OO ALV) 图文并茂,详细介绍了Fuction ALV 和OO ALV的相关开发 [SAP ABAP开发技术总结]ALV详解:Function ALV(一) [SAP ABAP开发技术总结]ALV详解:Function ALV...

    C_OO思想编程

    C_OO思想编程

    goodoo:用Elixir编写的简单,健壮且可自定义的健康检查解决方案

    要开始使用Goodoo,请创建一个模块: defmodule MyHealthCheck do use Goodoo end 之后,将带有所需检查器的模块添加到主管树中。 请参阅“检查器”部分以了解当前所有受支持的检查器。 checkers = %{ " ...

    OOALV常用功能完整简例

    OOALV常用功能完整简例,OO ALV常用功能完整简例 - OO ALV 常用功能完整简例(热键单击,双击,帮助,编辑,自定义工具条等)

    SAP ABAP视频班教学共21课-L10 OOALV.7z

    一个对象可被认为是一个把数据(属性)和程序(方法)封装在一起的实体,这个程序产生该对象的动作或对它接受到的外界信号的反应。这些对象操作有时称为方法。对象是个动态的概念,其中的属性反映了对象当前的状态。 ...

    ABAP OO的八个理由

    2.ABAP OO可以实现一个类的多个实例 3.ABAP OBJECT通过继承进一步增强了程序代码的可重用性 4.ABAP OO是你可以通过接口(interface)来调用对象的业务逻辑,而不是直接去使用对象,这样就避免了你需要详细了解每一个...

    sap abap oo实现ALV

    利用OO实现ALV , OO是SAP比较新的东西了,应用可能会越来越广

    encapsulate:JavaScript OO系统

    Encapsulate是一个用于JavaScript的紧凑的OO系统,它允许您结合使用特征(对象或提供成员的函数)和其他实例化器(您可能将其称为继承)来轻松创建对象实例化器(您可能将它们称为类)。 封装类似于在许多方面和...

    oracle oo4o安装包part1

    oracle oo4o 817安装包oracle oo4o 817安装包oracle oo4o 817安装包

Global site tag (gtag.js) - Google Analytics