论述题 15.  银行系统中的电子银行各个子系统是相互独立的,例如手机银行和网络银行,为了以后更好的发展,银行决定对这些子系统进行整合,现在请你设计一套登录系统,要求如下:各个子系统具体登录过程不一样,如手机银行不需要证书,仅仅需要用户名和密码即可,而网络银行需要UKEY或者文件证书,但登录流程都是一致的,首先对用户进行验证,验证通过后,显示欢迎界面。登录系统能够很方便地接入更多的电子银行的形式。要求选用合适的设计模式,画出UML图和系统框架图。
【正确答案】模板设计模式是指在一个方法中定义一个简单的算法骨架,而将一些步骤延迟到子类中实现,模板方法子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。实现类图如图1所示。
   

   图1  银行系统实现类图1

   AbstractClass为模板抽象类,这个抽象类中定义了两个抽象方法primitiveOperafion1和primitiveOpemfiort2,同时定义了算法的骨架templateMothod方法,这个方法内按照顺序调用了primitiveOperation1和primitiveOperation2方法,实现了算法的结构。这两个方法的具体实现细节由子类来决定。
   通过对模板设计模式进行研究发现,本题所描述的系统非常适合采用模板设计模式来实现,实现类图如图2所示。
   
【答案解析】