设计模式之工厂模式(二)

    科技2022-07-15  128

    抽象工厂

    一、 简单介绍二、抽象工厂(代码实现)


    一、 简单介绍


    二、抽象工厂(代码实现)

    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"); } }

    Processed: 0.012, SQL: 8