软件设计模式:客户数据管理与原型模式应用
1. 客户数据管理应用设计
我们要设计一个简单的客户数据管理应用,它具备以下特性:
- 基本功能是验证并保存包含账户、地址和信用卡数据的输入客户数据。
- 应用需在本地和远程模式下都能正常运行。
- 在远程模式下,应用要使用 Java 远程方法调用(RMI)的远程对象,并将数据保存到中央服务器。
- 当远程服务器不可用时,用户应能在本地无中断地操作应用。
- 此示例应用不考虑本地和中央数据库的同步过程。
1.1 客户数据类设计
设计三个类( Account
、 Address
和 CreditCard
)来表示客户数据的三个不同部分,每个类都提供接受、验证和保存相应客户数据部分的方法。这些类的实例可在本地模式下使用。但由于通过 RMI 作为远程对象访问的类需满足以下条件,所以这些类不能直接作为远程对象使用:
- 继承内置的 java.rmi.server.UnicastRemoteObject
类。
- 实现内置的 java.rmi.Remote
接口或从该接口派生的任何接口。
- 声明其所有方法抛出内置的 java.rmi.RemoteException
异常。
因此,为使应用在远程模式下正常运行,需要第二组客户数据类,其实例可通过 RMI 访问。同时,本地和远程对象必须提供相同的接口,以便应用能无缝使用它们。
以下是客户数据类的代码示例