Java中如何实现简单工厂模式

发布时间:2021-07-22 16:17:52 作者:Leah
来源:亿速云 阅读:141

Java中如何实现简单工厂模式,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

一 代码

interface Output{  // 接口里定义的成员变量只能是常量  int MAX_CACHE_LINE = 50;  // 接口里定义的普通方法只能是public的抽象方法  void out();  void getData( String msg );}class Printer implements Output {  private String[] printData      = new String[MAX_CACHE_LINE];  // 用以记录当前需打印的作业数  private int dataNum = 0;  public void out() {    // 只要还有作业,继续打印    while (dataNum > 0) {      System.out.println("打印机打印:" + printData[0]);      // 把作业队列整体前移一位,并将剩下的作业数减1      System.arraycopy(printData, 1          , printData, 0, --dataNum);    }  }  public void getData( String msg ) {    if (dataNum >= MAX_CACHE_LINE) {      System.out.println("输出队列已满,添加失败");    } else {      // 把打印数据添加到队列里,已保存数据的数量加1。      printData[dataNum++] = msg;    }  }}class BetterPrinter implements Output{  private String[] printData      = new String[MAX_CACHE_LINE * 2];  // 用以记录当前需打印的作业数  private int dataNum = 0;  public void out()  {    // 只要还有作业,继续打印    while(dataNum > 0)    {      System.out.println("高速打印机正在打印:" + printData[0]);      // 把作业队列整体前移一位,并将剩下的作业数减1      System.arraycopy(printData , 1, printData, 0, --dataNum);    }  }  public void getData(String msg)  {    if (dataNum >= MAX_CACHE_LINE * 2)    {      System.out.println("输出队列已满,添加失败");    }    else    {      // 把打印数据添加到队列里,已保存数据的数量加1。      printData[dataNum++] = msg;    }  }}class Computer{  private Output out;  public Computer(Output out)  {   this.out = out;  }  // 定义一个模拟获取字符串输入的方法  public void keyIn(String msg)  {   out.getData(msg);  }  // 定义一个模拟打印的方法  public void print()  {   out.out();  }}public class OutputFactory{  public Output getOutput()  {//  return new Printer();    return new BetterPrinter();  }  public static void main(String[] args)  {    OutputFactory of = new OutputFactory();    Computer c = new Computer(of.getOutput());    c.keyIn("轻量级Java EE企业应用实战");    c.keyIn("疯狂Java讲义");    c.print();  }}

看完上述内容,你们掌握Java中如何实现简单工厂模式的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

推荐阅读:
  1. php实现简单工厂模式
  2. 怎么在Java中定义一个简单工厂模式定义

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:SQLSERVER中怎么根据地图经纬度计算距离差

下一篇:为什么css属性值clear:right不起作用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》