【實驗內容和要求】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");
}
}
【運行截圖】