创建型模式之 -- 抽象工厂模式

抽象工厂模式

包结构如图

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/

 

posted @ 2018-01-25 10:06  淹死的鱼o0  阅读(174)  评论(0编辑  收藏  举报