package edu.design.pattern;
/**
*
* @author xxw
* @date 2022-04-07 22:43:36
* @Description
*
*/
public class AbstractFactoryPattern {
public static void main(String[] args) {
AppShop appShop = new XiaomiAppShop();
Earphone earphone = appShop.sellEarphone();
Pad pad = appShop.sellPad();
earphone.showType();
pad.showType();
}
}
interface AppShop {
public Earphone sellEarphone();
public Pad sellPad();
}
class XiaomiAppShop implements AppShop {
@Override
public Earphone sellEarphone() {
return new XiaomiEarphone();
}
@Override
public Pad sellPad() {
return new XiaomiPad();
}
}
class HuaweiAppShop implements AppShop {
@Override
public Earphone sellEarphone() {
return new HuaweiEarphone();
}
@Override
public Pad sellPad() {
return new HuaweiPad();
}
}
interface Earphone {
public void showType();
}
class XiaomiEarphone implements Earphone {
@Override
public void showType() {
System.out.println("Xiaomi Earphone");
}
}
class HuaweiEarphone implements Earphone {
@Override
public void showType() {
System.out.println("Huawei Earphone");
}
}
interface Pad {
public void showType();
}
class XiaomiPad implements Pad {
@Override
public void showType() {
System.out.println("Xiaomi Pad");
}
}
class HuaweiPad implements Pad {
@Override
public void showType() {
System.out.println("Huawei Pad");
}
}