您的位置:首页 > 编程语言 > Java开发

使用Java开发Domino业务应用的设计模式 (cont. 1)

2011-04-18 11:03 686 查看
设计业务对象

你可以通过很多途径实现model层。以checkout为例,表2展示如何进行代码实现。
以下是实现checkout的三种方法,三种方法都是通过浏览器提交命令调用checkout代理来实现,但是它们构造方法不一样。
方法一:NotesMain方法包含checkout的所有代码。
方法二:使用一个Java库,包含静态的checkout()函数,由于checkout()是独立的函数,所以用户必须提供函数所需要的参数(session,book
document等)。
表2 三种方法的比较
方法一(Fair)
方法二(good)
方法三(Best)
l  不符合MVC-checkout代码、控制器和显示代码混合
l  Checkout代码不可被其他类使用
l  与book相关的功能分散
l  可以把公共函数作为Java库中的静态方法使用
l  与MVC一致-显示层的工作较少
l  其他类可以调用checkout函数
l  与全局函数相类似,可以存在于非面向对象中的LotusScript中
l  可以组织进群组共有操作中
l  可以把公共函数组织起来,作为Java库中的静态方法使用
l  与MVC一致-显示层的工作减少
l  其他类可以调用checkout()
l  Book类封装了与实际book相关的所有操作和规则
l  通过一个对象模型实现功能,而不是通过分散的方法可以把公共操作设置为parent类
l  可以模仿应用的实际对象,把代码封装进一个对象模型
方法三:代理使用Java库,其中包含Book业务类。代理初始化一个Book对象,来代表将被借出的book。通过代理调用book.checkout(),来完成Checkout操作。
面向对象的设计的目标是根据对象来模拟现实世界中的处理过程,而Java是面向纯面向对象的语言,所以描述现实世界对象是最理想的编码语言就非Java莫属了。例如,book代表实际中的一本书也是实例图中(面向对象建模)、用例图(面向对象分析)、类图(面向对象设计)中的一本书,以及编码中的一个类也代表了一本书。
面向对象设计和Java语言使得应用代码和应用所支持的现实世界的系统相符合。这种一致性使应用更易理解,更能适应业务处理过程中的变化。开发者只要查看应用的Javadoc文档,就能快速确定:1)这个系统是由哪些现实世界中的对象组成;2)对象要执行哪些现实的操作。在应用功能由各个代理承担的地方,需要考虑进行选择性的执行。使用业务对象实现model层与使用分散的方法相比,优势如下:
l  代码组织的惯例反映了应用所支撑的现实世界对象
l  与现实世界的对象相关的代码均被封装在业务对象中
l  应用代码易懂、易维护
l  与面向对象的设计原则一致,而且通过了最好的实际验证
设计
Library

在进行面向对象的分析中,你可以根据执行者(用户或其他系统)对系统的行为设计用例。用例至少描述一个操作,执行操作的预处理和最终结果。用例也可以包含一个项目所需要的其他信息,如业务事件触发、优先权、失败结果、非功能性需要等。Library的用例如下:
l  创建book
l  更新book
l  删除book
l  借阅book
l  归还book
l  新建member
l  更新member信息
l  删除member
在面向对象的设计中,根据用例来设计类图。类图展示了系统中的所有类(对象)和与之相联系的操作和属性。用例展示的是一个系统要做的事情,而类图展示的是系统如何实现。
注意基类BusinessDocument。业务类拥有公共的属性和方法,这些公共的特性可以在基类中实现。基类也可以只是包含公共操作的一般化设置,子类可以需要对他们进行重载,以执行特定需求的操作。



 
图2  Library 类图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息