现在,由于软件设计具有较高的依赖性和复杂性,开发人员面临着诸多障碍和挑战。求助于设计模式,使用重复解决方案就无需再重复很多相同的工作,从而节省了宝贵的开发时间。
新发布的 NetBeans Enterprise Pack 5.5 Preview 使用其统一建模语言(Unified Modeling Language ,UML)功能支持设计模式。本文描述了模式类型、创建它们所需的步骤以及如何将它们应用到应用程序组件中。
目录
l 模式类型
l 模式的应用
l 参考
模式类型
在 NetBeans Enterprise Pack 5.5 Preview 中,可以设计三种UML模式:
l Enterprise JavaBeans (EJB) 1.1 模式 — 作为 EJB 1.1 规范的设计解决方案引入,这类模式具有以下四种形式之一:BeanManaged,ContainerManaged,StatefulSession 或 StatelessSession。
l EJB 2.0 模式 — 作为 EJB 2.0 规范的设计解决方案,这类模式具有以下五种形式之一: MessageDriven或上述四种形式之一。
l Gang of Four (GoF) 模式 — 所有模式的基础,这类模式包括三种主要类型:创造型(Creational)、结构型(Structural)和行为型(Behavioral)。
可以随意应用它们到任何图表类型:类图、序列图、用例图、协作图。
模式的应用
在应用设计模式之前,首先要创建一个 UML 项目。
创建一个 UML 项目
要创建 UML 项目,请执行以下步骤:
1. 选择 File > New Project
显示 New Project 向导。
2. 在 Categories 下面,选择 UML。
3. 在 Projects 下面,选择 Platform-Independent Model。单击 Next 按钮。
4. 在 Project Name 文本字段中,为该项目键入一个名字,然后点击 Browse 导航到要保存项目的目录。单击 Finish。
显示有图表类型的 New Wizard 向导就打开了。
5. 选择图表类型,并在 Diagram Name 文本字段中键入名字。
6. 为 Namespace 保留其默认设置。单击 OK。
现在已经用所选的图表类型创建了一个独立于平台的 UML 项目。
应用 EJB 1.1 模式
要应用 EJB 1.1 设计模式,首先执行以下操作:
1. 从 Palette 上,拖放一对类和一个接口到绘画区域上。
2. 单击 Palette 中的 Generalization来连接类。
3. 单击 Palette 中的 Implementation 来连接其中的一个类及这个接口。
4. 在图表中右键单击得到上下文菜单并从中选择 Apply Design Pattern。
显示 Design Pattern 向导。
5. 单击 Next。
之后,按以下步骤操作:
1. 从 Project 下面的菜单中选择 EJB1.1。
2. 从 Design pattern 下面的菜单中选择 BeanManaged,ContainerManaged,StatefulSession 或 StatelessSession 中的一个。
显示 Target Scope 窗格。
3. 从 Namespace 下面的菜单中选择合适的设置:java
、java::lang
、java::rmi
、javax
或javax::ejb
。单击 Next。
注意:如果您在包内创建了类和接口,NetBeans Enterprise Pack 5.5 Preview 还会在 Namespace 下拉菜单中显示包的名字。
显示 Choosing Participants 窗格,它显示了模式角色及参与者相应的默认值。
4. 可选步骤。要更改默认值,执行以下操作:
a. 在右栏中单击参与者名字,然后从下拉菜单中另选一个名字。见图3。
b. 单击 Next。显示 Options 窗格。
c. 单击 Next,然后在指定应用模式的窗格上单击 Finish。
Netbeans Enterprise Pack 5.5 Preview 提示用户确认重写角色参与者。
d. 单击 Yes。
5. 选择 Create class diagram。在文本字段中,保留默认设置或键入自己选择的名字。
6. 单击 Next,然后单击 Finish。
然后 NetBeans Enterprise Pack 5.5 Preview 将创建一个显示所有角色的类图。在资源管理器视图中,单击以扩展包 java::lang
,就会看到 BeanManagedDiagram 节点。
. 对于任何其它 EJB 1.1 设计模式,可重复该过程。
应用 EJB 2.0 模式
用户可以将 EJB 2.0 设计模式应用到上一节创建的模型中。接着上面的步骤,执行以下操作:
1. 从 Project 下面的菜单中选择 EJB2.0。
2. 在 Design pattern 下面的菜单中,从五个选项中选择一个:BeanManaged、ContainerManaged、MessageDriven、StatefulSession 或 StatelessSession。单击 Next。
3. 从 Namespace 下面的菜单中选择合适的设置:设置为空白、java
、java::lang
、java::rmi
、javax
或 javax::ejb
。
单击 Next。
显示有模式角色的 Choosing Participants 窗格就出现了。
4. 可选步骤。通过从下拉菜单中选择其他名字来重命名角色。
5. 单击 Next。
显示 Options 窗格。
6. 选择 Create class diagram。在文本字段中,保留默认值或键入自己选择的名字。
7. 单击 Next,然后单击 Finish。
然后 NetBeans Enterprise Pack 5.5 Preview 将创建一个显示所有角色的类图。在资源管理器视图中,单击以扩展包 javax:ejb
,就会看到 MessageDrivenDiagram 节点。
注意:如果您在包内创建了类和接口,MessageDrivenDiagram 节点就在包名称下面显示。
对于项目中任何其它 EJB 2.0 设计模式,重复该过程。
应用 GoF 模式
用户可将 GoF 设计模式应用到上一节创建的模型中。接着上面的步骤,执行以下操作::
1. 从 Project 下面的菜单中选择 GoF 设计模式。
2. 从 Design pattern下面的菜单中选择Behavioral、Creational 或 Structural 模式。
从 Namespace 下面的菜单中选择合适的设置:设置为空白、java
、java::lang
、java::rmi
、javax
或 javax::ejb
。单击 Next。
显示有模式角色的 Choosing Participants 窗格就出现了。
注意:如果您在包内创建了类和接口,NetBeans Enterprise Pack 5.5 Preview 还会在 Namespace 下拉菜单中显示包的名字。
4. 可选步骤。重复“应用 EJB 1.1 模式”一节中的可选步骤 4。
然后 NetBeans Enterprise Pack 5.5 Preview 将创建一个显示所有角色的类图。在资源管理器视图中,单击以扩展包 java::lang
,就会看到
BeanManagedDiagram 节点。
注意:如果您在包内创建了类和接口, ChainOfResponsibilityDiagram 节点在包名称下面显示。
对于项目中任何其它 GoF 设计模式,重复该过程。
参考文献
l Paper by Bob Tarr: Introduction To Design Patterns (PDF)
l Design patterns site at Data and Object Factory
l NetBeans Enterprise Pack 5.5 Preview
l 主页
l 论坛