抽象工厂
抽象工厂
用来创建工厂的工厂,超级工厂
抽象工厂接口
public interface ProductFactory {
PhoneProduct phoneProduct();
RouterProduct routerProduct();
}
具体工厂类
//小米工厂
public class XiaomiFactory implements ProductFactory{
@Override
public PhoneProduct phoneProduct() {
return new XiaomiPhone();
}
@Override
public RouterProduct routerProduct() {
return new XiaomiRouter();
}
}
//华为工厂
public class HuaweiFactory implements ProductFactory{
@Override
public PhoneProduct phoneProduct() {
return new HuaweiPhone();
}
@Override
public RouterProduct routerProduct() {
return new HuaweiRouter();
}
}
抽象产品接口
//手机接口
public interface PhoneProduct {
void start();
void shut();
void call();
void send();
}
//路由器接口
public interface RouterProduct {
void start();
void shut();
void openWifi();
void setting();
}
具体产品类
//小米手机
public class XiaomiPhone implements PhoneProduct{
@Override
public void start() {
System.out.println("小米手机开机");
}
@Override
public void shut() {
System.out.println("小米手机关机");
}
@Override
public void call() {
System.out.println("小米手机打电话机");
}
@Override
public void send() {
System.out.println("小米手机发短信机");
}
}
//小米路由器
public class XiaomiRouter implements RouterProduct{
@Override
public void start() {
System.out.println("小米路由器开机");
}
@Override
public void shut() {
System.out.println("小米路由器关机机");
}
@Override
public void openWifi() {
System.out.println("小米路由器wifi");
}
@Override
public void setting() {
System.out.println("小米路由器设置");
}
}
//华为手机
public class HuaweiPhone implements PhoneProduct{
@Override
public void start() {
System.out.println("华为手机开机");
}
@Override
public void shut() {
System.out.println("华为手机关机");
}
@Override
public void call() {
System.out.println("华为手机打电话机");
}
@Override
public void send() {
System.out.println("华为手机发短信机");
}
}
//华为路由器
public class HuaweiRouter implements RouterProduct{
@Override
public void start() {
System.out.println("华为路由器开机");
}
@Override
public void shut() {
System.out.println("华为路由器关机机");
}
@Override
public void openWifi() {
System.out.println("华为路由器wifi");
}
@Override
public void setting() {
System.out.println("华为路由器设置");
}
}
客户端
//客户端
public class Consumer {
public static void main(String[] args) {
System.out.println("===========小米==============");
XiaomiFactory xiaomiFactory = new XiaomiFactory();
PhoneProduct xiaomiPhone = xiaomiFactory.phoneProduct();
xiaomiPhone.call();
xiaomiPhone.send();
RouterProduct xiaomiRouter = xiaomiFactory.routerProduct();
xiaomiRouter.openWifi();
xiaomiRouter.setting();
System.out.println("===========华为==============");
HuaweiFactory huaweiFactory = new HuaweiFactory();
PhoneProduct huaweiPhone = huaweiFactory.phoneProduct();
huaweiPhone.call();
huaweiPhone.send();
RouterProduct huaweiRouter = huaweiFactory.routerProduct();
huaweiRouter.openWifi();
huaweiRouter.setting();
}
}

浙公网安备 33010602011771号