【软件架构】软件体系结构风格实现
要求:
麦当劳(McDonalds)和肯德基(KFC)快餐店都经营汉堡(Hamburg)和可乐(Cola),用面向对象思想实现这两个快餐店经营产品的抽象工厂模式。绘制该模式的UML类图。
代码实现:
//AbstractFactory.java
interface AbstractFactory{Hamburg createHamburg();Cola createCola();
}
//Cola.java
public interface Cola{void getCola();
}
//Hamburg.java
public interface Hamburg {void getHumburg();
}
//KFCCola.java
public class KFCCola implements Cola{public void getCola() {System.out.println("KFCCola");}
}
//KFCFactory.java
public class KFCFactory implements AbstractFactory{public Hamburg createHamburg() {return new KFCHamburg();}public Cola createCola() {return new KFCCola();}}
//KFCHamburg.java
public class KFCHamburg implements Hamburg{public void getHumburg() {System.out.println("KFCHamburg");}}
//Main.java
public class Main {public static void main(String[] args) {Hamburg h = null;Cola c = null;AbstractFactory af = null;af = new McDonaldsFactory();h = af.createHamburg();c = af.createCola();h.getHumburg();c.getCola();af = new KFCFactory();h = af.createHamburg();c = af.createCola();h.getHumburg();c.getCola();}
}
//McDonaldsCola.java
public class McDonaldsCola implements Cola{public void getCola() {System.out.println("McDonaldsCola");}
}
//McDonaldsFactory.java
class McDonaldsFactory implements AbstractFactory{public Hamburg createHamburg() {return new McDonaldsHamburg();}public Cola createCola() {return new McDonaldsCola();}
}
//McDonaldsHamburg.java
class McDonaldsHamburg implements Hamburg{public void getHumburg() {System.out.println("McDonaldsHamburg");}
}