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

      

  • 相关阅读:
    pycharm的list的应用
    pycharm的list中copy的应用
    pycharm的list中clear的应用
    pycharm的list中append的应用
    crontab 管理指定用户的定时任务
    vsftp 搭建及虚拟账号配置
    MySQL 主从配置
    Ant 学习及常用任务
    ansible 小试
    微信H5页面分享
  • 原文地址:https://www.cnblogs.com/yangxiaohui227/p/10905009.html
Copyright © 2011-2022 走看看