zoukankan      html  css  js  c++  java
  • 创建型模式之 -- 抽象工厂模式

    抽象工厂模式

    包结构如图

    ps:理解起来会有些抽象

    1.功能接口PlayGame.java

    public interface PlayGame {
        public void game(); 
    }

    2.实现功能接口的两种设备Computer.java和Phone.java

    public class Computer implements PlayGame{
    @Override
    public void game() { System.err.println("玩电脑游戏!!"); } }
    public class Phone implements PlayGame { @Override public void game() { System.err.println("玩手机游戏"); } }

    3.工厂接口FactoryTypeInterface.java

    public interface FactoryTypeInterface {  
        public PlayGame playGameType();  
    } 

    4.两种工厂ComputerPlayGameFactory.java和PhonePlayGameFactory.java

    ps:两种工厂都实现工厂接口,实现方法相同,实现内容不同

    /**
     * 工厂
     * @author 淹死的鱼o0
     */
    public class ComputerPlayGameFactory implements FactoryTypeInterface {
    
        @Override
        public PlayGame playGameType() {
            // TODO Auto-generated method stub
            return new Computer();
        }
    
    }
    
    /**
     * 游戏工厂
     * 
     * @author 淹死的鱼o0
     */
    public class PhonePlayGameFactory implements FactoryTypeInterface{
    
        @Override
        public PlayGame playGameType() {
            // TODO Auto-generated method stub
            return new Phone();
        }
    }

     5.测试:

    public class PlayGameTest {
        @Test
        public void phonePlayGameTest() {
            FactoryTypeInterface typeInterface = new PhonePlayGameFactory();
            typeInterface.playGameType().game();
        }
        
        @Test
        public void computerPlayGameTest() {
            FactoryTypeInterface typeInterface = new ComputerPlayGameFactory();
            typeInterface.playGameType().game();
        }
    }

    6.测试结果展示

           

     7.总结

      抽象工厂是在普通工厂上的进一步升级,它优于普通工厂的地方在于当我们需要增加新的设备时,只需要新建一个工厂实现工厂接口就可以了,扩展性能更加好.

     

    欢迎转载:

    中文名:惠凡

    博客名:淹死的鱼o0

    转载时请说明出处:http://www.cnblogs.com/huifan/

  • 相关阅读:
    【转】织梦为栏目添加图片的方法
    写在php设计模式前
    memcache 开机启动
    php 列出当前目录
    print echo 的区别
    php 报错等级
    nginx 启动脚本
    centos 编译 安装php
    修改linux iptable规则
    linux yum 安装软件
  • 原文地址:https://www.cnblogs.com/huifan/p/8349874.html
Copyright © 2011-2022 走看看