Simple Factory模式

Simple Factory模式(又称Static Factory模式),一个Simple Factory生产成品,而对客户端隐藏产品产生的细节。假设有一个音乐盒工厂,购买音乐盒的客人不用知道音乐盒是如何制作的,他只要知道如何播放音乐盒就可以了,以 UML 类别图来表示以上的概念:在此输入图片描述

如上图所示,MusicBoxDemo代表了客户的角色,它只依赖于IMusicBox接口,并不关心特定实例,实际上IMusicBox实例的产生由MusicBoxFactory完成,以一个简单的程序来实现

IMusicBox接口:

public interface IMusicBox
{
        public void play();
}

PianoBox.java:

public class PianoBox implements IMusicBox
{
    public void play()
    {
        System.out.println("播放钢琴音乐");
    }
}

ViolinBox.java

public class ViolinBox implements IMusicBox
{
    public void play()
    {
        System.out.println("播放小提琴音乐");
    }
 }

MuiscBoxFactory.java:

public class MusicBoxFactory
{
    public static IMuiscBox createMusicBox(String name) throws Exception
    {
        return (IMucisBox) Class.forName(name).newInstance();
    }
}

MusicBoxDemo.java

public class MusicBoxDemo
{
      public static void main(String[] args)
      {
          playMusicBox("PianoBox");
          playMusicBox("ViolinBox");
      }
      public static void playMusicBox(String name)
      {
            MusicBoxFactory.createMusicBox(name).play();
      }
}

你可能感兴趣的:(模式,simple,简单工厂模式,factory)