【实验内容和要求】java
麦当劳(McDonalds)和肯德基(KFC)快餐店都经营汉堡(Hamburg)和可乐(Cole),用JAVA语言实现(C#控制台应用程序实现)这两个快餐店经营产品的抽象工厂模式。绘制该模式的UML图。ide
【模式UML图】函数
【模式代码(JAVA语言实现)】spa
//主函数get
import java.util.Scanner;input
public class AbstractFactory {产品
public static void main(String arg[])io
{class
Scanner input=new Scanner(System.in);import
System.out.println("1:KFC 2:McDonalds");
int a=input.nextInt();
Hamburg h;
Cole c;
if(a==1)
{
Creator af=new KFCFactory();
System.out.println("1:Hamburg 2:Cole");
int b=input.nextInt();
if(b==1)
{
h=af.createHamburg();
h.getHamburg();
}else{
c=af.createCole();
c.getCole();
}
}else if(a==2)
{
Creator af=new McFactory();
System.out.println("1:Hamburg 2:Cole");
int b=input.nextInt();
if(b==1)
{
h=af.createHamburg();
h.getHamburg();
}else{
c=af.createCole();
c.getCole();
}
}
}
}
//工厂类
public interface Creator {
Hamburg createHamburg();
Cole createCole();
}
public class KFCFactory implements Creator {
@Override
public Hamburg createHamburg() {
// TODO Auto-generated method stub
return new KFCHamburg();
}
@Override
public Cole createCole() {
// TODO Auto-generated method stub
return new KFCCole();
}
}
public class McFactory implements Creator {
@Override
public Hamburg createHamburg() {
// TODO Auto-generated method stub
return new McHamburg();
}
@Override
public Cole createCole() {
// TODO Auto-generated method stub
return new McCole();
}
}
//产品类
public interface Cole {
public void getCole();
}
public class KFCCole implements Cole {
@Override
public void getCole() {
// TODO Auto-generated method stub
System.out.println("KFCCole");
}
}
public class McCole implements Cole {
@Override
public void getCole() {
// TODO Auto-generated method stub
System.out.println("McCole");
}
}
public interface Hamburg {
public void getHamburg();
}
public class KFCHamburg implements Hamburg {
@Override
public void getHamburg() {
// TODO Auto-generated method stub
System.out.println("KFCHamburg");
}
}
public class McHamburg implements Hamburg {
@Override
public void getHamburg() {
// TODO Auto-generated method stub
System.out.println("McHamburg");
}
}
【运行截图】