Java实现factory抽象工厂设计模式的小案例
Posted Acmen-zym
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java实现factory抽象工厂设计模式的小案例相关的知识,希望对你有一定的参考价值。
1、先创建抽象层的工厂和对象
/**
* 抽象工厂类
*/
public abstract class AbstractFactory
public abstract EventAbstract createEvent();
public abstract ToolAbstract createTool();
/**
* 事件抽象类
*/
public abstract class EventAbstract
public abstract void occurEvent();
/**
* 工具抽象类
*/
public abstract class ToolAbstract
//使用工具
public abstract void useTool();
2、具体工厂和实现类
1、魔法世界
public class MagicFactory extends AbstractFactory
public EventAbstract createEvent()
return new MagicEvent();
public ToolAbstract createTool()
return new MagicTool();
public class MagicEvent extends EventAbstract
public void occurEvent()
System.out.println("遇到一只哥布林");
public class MagicTool extends ToolAbstract
public void useTool()
System.out.println("魔法师使用法术球做为工具");
2、现代世界
public class ModernFactory extends AbstractFactory
public EventAbstract createEvent()
return new ModernEvent();
public ToolAbstract createTool()
return new ModernTool();
public class ModernEvent extends EventAbstract
public void occurEvent()
System.out.println("遇到恐怖份子");
public class ModernTool extends ToolAbstract
public void useTool()
System.out.println("现代人使用机枪做为工具");
3、原始世界
public class OriginalFactory extends AbstractFactory
public EventAbstract createEvent()
return new OriginalEvent();
public ToolAbstract createTool()
return new OriginalTool();
public class OriginalEvent extends EventAbstract
public void occurEvent()
System.out.println("遇到一只长毛象");
public class OriginalTool extends ToolAbstract
public void useTool()
System.out.println("原始人使用石矛做为工具");
执行案例代码
public static void main(String[] args)
//用抽象工厂接收具体工厂并且调用实现方法
AbstractFactory maFactory = new MagicFactory();//魔法世界工厂
maFactory.createEvent().occurEvent();//事件触发
maFactory.createTool().useTool();//使用工具
AbstractFactory moFactory = new ModernFactory();//现代世界工厂
moFactory.createEvent().occurEvent();//事件触发
moFactory.createTool().useTool();//使用工具
AbstractFactory orFactory = new OriginalFactory();//原始世界工厂
orFactory.createEvent().occurEvent();//事件触发
orFactory.createTool().useTool();//使用工具
执行效果
以上是关于Java实现factory抽象工厂设计模式的小案例的主要内容,如果未能解决你的问题,请参考以下文章
抽象工厂模式 (Abstract Factory Pattern)
Java设计模式:Abstract Factory(抽象工厂)模式