zoukankan      html  css  js  c++  java
  • 简单工厂模式

    /**
     * 简单工厂,简单在于只有一个工厂方法就可以生产对应的对象,通过工厂方法,存入对应的对象名字进行匹配,一般工厂方法都是静态的,所以也叫静态工厂方法
     * 缺点是:每添加一个子类,就要改下工厂方法的代码,拓展性不强
     * 本次使用富士康生产苹果手机和小米手机为例子,富士康就是一个工厂,要生产苹果手机,只要跟富士康说,我要生产苹果手机就行了,它就不会帮你生产华为还是其他手机,
     * 同理,你要生产小米手机,也是跟富士康老板说,我要生产小米手机就行了
     * 简单工厂的模式:必须有个接口(如手机接口),还有该接口的几个实现类(小米手机,苹果手机),最后一个就是一个工厂类(富士康),工厂类有个静态方法
     */
    
    //创建手机接口
    public interface Phone {
        void call();
    }
    //苹果手机
    public class Iphone implements Phone {
        @Override
        public void call() {
            System.out.println("使用苹果手机打电话");
        }
    }
    //小米手机
    public class MIPhone implements Phone {
        @Override
        public void call() {
            System.out.println("使用小米手机打电话");
        }
    }
    /**
     * 工厂类,如富士康,用于生产对应的手机
     */
    
    public class FoxconnFactorty {
        public static Phone createPhone(String phoneName){ //工厂方法
            if("xiaoMi".equals(phoneName)){
                return new MIPhone();
            }
            if("apple".equals(phoneName)){
                return new Iphone();
            }
            return null;
        }
    
    }
    class test {
    
         public static void main(String[] args) {
             //生产苹果手机
             Phone apple = FoxconnFactorty.createPhone("apple");
             apple.call();
             //生产小米手机
             Phone xiaoMi = FoxconnFactorty.createPhone("xiaoMi");
             xiaoMi.call();
         }
     }     
    

      

  • 相关阅读:
    设置为自动启动的WindowService没有开机启动
    Asp.Net部署问题
    MSDTC的折磨
    C# WinForm 边框阴影窗体
    升级DotNetNuke
    常用缩写
    DotNetNuke的升级路径
    日本語文法勉強
    PostSubmitter~在WEB应用程序以外的其他程序里提交Web请求的类
    vue中的锚链接跳转问题
  • 原文地址:https://www.cnblogs.com/yangxiaohui227/p/10905009.html
Copyright © 2011-2022 走看看