某手机游戏软件公司欲推出一款新的游戏软件,该软件能够支持 Symbian 、 Android 和 Windows Mobile 等多个主流的手机操作系统平台,针对不同的手机操作系统,该游戏软件提供了不同的游戏操作控制类和游戏界面控制类,并提供相应的工厂类来封装这些类的初始化。软件要求具有较好的扩展性以支持新的操作系统平台,为了满足上述需求,采用抽象工厂模式进行设计所得类图 : 在该设计方案中,具体工厂类如 SymbianFactory 用于创建 Symbian 操作系统平台下的游戏操作控制类 SymbianOperationController 和游戏界面控制类 SymbianInterfaceController ,再通过它们的业务方法来实现对游戏软件的初始化和运行控制。 【 Java 代码】 interface AbstractFactory { public OperationController getOperationController(); public InterfaceController getInterfaceController(); } interface OperationController { public void init(); // 其他方法声明省略 } interface InterfaceController { public void init(); // 其他方法声明省略 } class SymbianFactory implements AbstractFactory { public OperationController getOperationController() { (1) ; } public InterfaceController getInterfaceController() { (2) ; } } class AndroidFactory (3) { public OperationController getOperationController() { return new AndroidOperationController(); } public InterfaceController getInterfaceController() { return new AndroidInterfaceController(); } } class SymbianOperationController (4) { public void init() { // 实现代码省略 } // 其他方法声明省略 } class AndroidOperationController (5) { public void init() { // 实现代码省略 } // 其他方法声明省略 } class SymbianInterfaceController implements InterfaceController { public void init() { // 实现代码省略 } // 其他方法声明省略 } class AndroidInterfaceController implements InterfaceController { public void init() { // 实现代码省略 } // 其他方法声明省略 } class Test { public static void main(String args[]) { AbstractFactory af; (6) oc; (7) ic; af = new SymbianFactory(); oc = (8) ; ic = (9) ; oc.init(); ic.init(); } }