public interface IphoneProduct {
void start();
void shotdown();
void openwife();
void setting();
}
-----------------------------
public interface IRouterProduct {
void start();
void shotdown();
void openwife();
void setting();
}
-----------------------------
//抽象产品工厂
public interface ProductFactory {
//生产手机
IphoneProduct IphoneFactory();
//生产路由器
IRouterProduct RouterFactory();
}
-----------------------------
public class HuaWeiFactory implements ProductFactory {
@Override
public IphoneProduct IphoneFactory() {
return new HuaWeiIphone();
}
@Override
public IRouterProduct RouterFactory() {
return new HuaWeiRouterProduct();
}
}
-----------------------------
public class HuaWeiIphone implements IphoneProduct {
@Override
public void start() {
System.out.println("华为开机");
}
@Override
public void shotdown() {
System.out.println("华为关机");
}
@Override
public void openwife() {
System.out.println("华为开热点");
}
@Override
public void setting() {
System.out.println("华为设置");
}
}
-----------------------------
public class HuaWeiRouterProduct implements IRouterProduct {
@Override
public void start() {
System.out.println("华为路由器开机");
}
@Override
public void shotdown() {
System.out.println("华为路由器关机");
}
@Override
public void openwife() {
System.out.println("华为路由器开热点");
}
@Override
public void setting() {
System.out.println("华为路由器设置");
}
}
-----------------------------
public class XiaomiFactory implements ProductFactory {
@Override
public IphoneProduct IphoneFactory() {
return new Xiaomoiphone();
}
@Override
public IRouterProduct RouterFactory() {
return new XiaomoRouterProduct();
}
}
-----------------------------
public class Xiaomoiphone implements IphoneProduct {
@Override
public void start() {
System.out.println("小米开机");
}
@Override
public void shotdown() {
System.out.println("小米关机");
}
@Override
public void openwife() {
System.out.println("小米开热点");
}
@Override
public void setting() {
System.out.println("小米设置");
}
}
-----------------------------
public class XiaomoRouterProduct implements IRouterProduct {
@Override
public void start() {
System.out.println("小米路由器开机");
}
@Override
public void shotdown() {
System.out.println("小米路由器关机");
}
@Override
public void openwife() {
System.out.println("小米路由器开热点");
}
@Override
public void setting() {
System.out.println("小米路由器设置");
}
}
-----------------------------
public class Consumer {
public static void main(String[] args) {
System.out.println("=======================小米系列=======================");
System.out.println("===小米手机===");
XiaomiFactory xiaomiFactory = new XiaomiFactory();
IphoneProduct iphoneProduct = xiaomiFactory.IphoneFactory();
iphoneProduct.start();
iphoneProduct.setting();
iphoneProduct.openwife();
iphoneProduct.shotdown();
System.out.println("===小米路由器===");
IRouterProduct iRouterProduct = xiaomiFactory.RouterFactory();
iRouterProduct.start();
iRouterProduct.setting();
iRouterProduct.openwife();
iRouterProduct.shotdown();
System.out.println("=======================华为系列=======================");
System.out.println("===华为手机===");
HuaWeiFactory huaWeiFactory = new HuaWeiFactory();
IphoneProduct iphoneProduct1 = huaWeiFactory.IphoneFactory();
iphoneProduct1.start();
iphoneProduct1.setting();
iphoneProduct1.openwife();
iphoneProduct1.shotdown();
System.out.println("===华为路由器===");
IRouterProduct iRouterProduct1 = huaWeiFactory.RouterFactory();
iRouterProduct1.start();
iRouterProduct1.setting();
iRouterProduct1.openwife();
iRouterProduct1.shotdown();
}
}
-----------------------------
返回的结果
=======================小米系列=======================
===小米手机===
小米开机
小米设置
小米开热点
小米关机
===小米路由器===
小米路由器开机
小米路由器设置
小米路由器开热点
小米路由器关机
=======================华为系列=======================
===华为手机===
华为开机
华为设置
华为开热点
华为关机
===华为路由器===
华为路由器开机
华为路由器设置
华为路由器开热点
华为路由器关机
抽象工厂设计模式
于 2022-03-01 21:37:47 首次发布