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


一、 简单介绍

在这里插入图片描述

在这里插入图片描述


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

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

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_38847154/article/details/108919838