一、 简单介绍
二、抽象工厂(代码实现)
package factory.abstract1;
public class Client {
public static void main(String[] args) {
System.out.println("======小米产品=========");
XiaomiFactory xiaomiFactory=new XiaomiFactory();
IphoneProduct iphoneProduct=xiaomiFactory.IProductProduct() ;
iphoneProduct.callup();
iphoneProduct.sendSMS();
IRouterProduct iRouterProduct=xiaomiFactory.routerProduct();
iRouterProduct.openwifi();
System.out.println("====================华为系列产品===========");
HuaweiFactory huaweiFactory=new HuaweiFactory();
iphoneProduct=huaweiFactory.IProductProduct();
iphoneProduct.callup();
iphoneProduct.sendSMS();
iRouterProduct=huaweiFactory.routerProduct();
iRouterProduct.openwifi();
}
}
package factory.abstract1;
public class HuaweiFactory implements IProductFactory {
@Override
public IphoneProduct IProductProduct() {
return new HuaweiPhone();
}
@Override
public IRouterProduct routerProduct() {
return new HuaweiRouter();
}
}
package factory.abstract1;
public class HuaweiPhone implements IphoneProduct{
@Override
public void start() {
System.out.println("华为开机");
}
@Override
public void shutdown() {
System.out.println("华为关机");
}
@Override
public void callup() {
System.out.println("华为打电话");
}
@Override
public void sendSMS() {
System.out.println("华为发短信");
}
}
package factory.abstract1;
public class HuaweiRouter implements IRouterProduct{
@Override
public void start() {
System.out.println("启动华为路由器");
}
@Override
public void shutdown() {
System.out.println("关闭华为路由器");
}
@Override
public void openwifi() {
System.out.println("打开华为路由器");
}
@Override
public void setting() {
System.out.println("设置华为wifi");
}
}
package factory.abstract1;
public interface IphoneProduct {
void start();
void shutdown();
void callup();
void sendSMS();
}
package factory.abstract1;
public interface IProductFactory {
IphoneProduct IProductProduct();
IRouterProduct routerProduct();
}
package factory.abstract1;
public interface IRouterProduct {
void start();
void shutdown();
void openwifi();
void setting();
}
package factory.abstract1;
public class XiaomiFactory implements IProductFactory{
@Override
public IphoneProduct IProductProduct() {
return new XiaomiPhone();
}
@Override
public IRouterProduct routerProduct() {
return new XiaomiRouter();
}
}
package factory.abstract1;
public class XiaomiPhone implements IphoneProduct{
@Override
public void start() {
System.out.println("小米开机");
}
@Override
public void shutdown() {
System.out.println("小米关机");
}
@Override
public void callup() {
System.out.println("小米打电话");
}
@Override
public void sendSMS() {
System.out.println("小米发短信");
}
}
package factory.abstract1;
public class XiaomiRouter implements IRouterProduct{
@Override
public void start() {
System.out.println("启动小米路由器");
}
@Override
public void shutdown() {
System.out.println("关闭小米路由器");
}
@Override
public void openwifi() {
System.out.println("打开小米路由器");
}
@Override
public void setting() {
System.out.println("设置小米wifi");
}
}