• 设计模式-3-简单工厂


    简介:工厂类根据传入参数,创建对应的实现类

    目的:根据传入参数,提供对应的实现类

    总结:工厂类根据传入参数,创建对应的实现类

    主要组成:  接口, 实现类, 工厂类

    接口:

    GameService.java

    package com.design.c.factory.simple;
    
    public interface GameService {
    
        /**
         * 游戏方法
         */
        void play();
    }

    实现类:

    AGameServiceImpl.java

    package com.design.c.factory.simple;
    
    public class AGameServiceImpl implements GameService {
    
        @Override
        public void play() {
            System.out.println("Playing AngryBird Game  ... ... ");
        }
    
    }

    BGameServiceImpl.java

    package com.design.c.factory.simple;
    
    public class BGameServiceImpl implements GameService {
    
        @Override
        public void play() {
            System.out.println("Playing LOL Game  ... ... ");
        }
    
    }

    工厂类:

    package com.design.c.factory.simple;
    /**
     * 简单工厂模式
     * 
     * 简介:由一个工厂对象决定创建出哪一种实例
     */
    public class SimpleFactory {
        
        //1-私有化构造方法
        private SimpleFactory(){};
    
        //2-根据传递给工厂类的参数,决定创建那种实例
        public static GameService createGameService(String gameName){
            
            if(gameName == null){
                return null;
            }
            
            if("A".equals(gameName)){
                return new AGameServiceImpl();
            }else if("B".equals(gameName)){
                return new BGameServiceImpl();
            }
            
            return null;
        }
    }

    Main:

    package com.design.c.factory.simple;
    
    public class MainTest {
    
        public static void main(String[] args) {
            
            /**
             * 3-简单工厂模式
             */
            GameService lolGame = SimpleFactory.createGameService("A");
            lolGame.play();
            GameService angryBirdGame = SimpleFactory.createGameService("B");
            angryBirdGame.play();
        }
    }

    Result:

    Playing AngryBird Game  ... ... 
    Playing LOL Game  ... ... 
  • 相关阅读:
    即时搜索(input框)
    HTML的页面IE注释
    浅谈attr()和prop()
    input---checked小问题
    鼠标右键事件
    JavaScript 异步开发全攻略(转)
    remove方法
    javascript 数组以及对象的深拷贝(复制数组或复制对象)的方法
    Hexo的更新 主题的更换
    深浅拷贝,原生和JQuery方法实现
  • 原文地址:https://www.cnblogs.com/wanhua-wu/p/7196643.html
Copyright © 2020-2023  润新知