亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java面向接口編程之簡單工廠模式示例

 更新時(shí)間:2019年09月25日 11:39:22   作者:cakincqm  
這篇文章主要介紹了Java面向接口編程之簡單工廠模式,結(jié)合實(shí)例形式詳細(xì)分析了java面向接口編程簡單工廠模式的具體定義與使用方法,需要的朋友可以參考下

本文實(shí)例講述了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];
  // 用以記錄當(dāng)前需打印的作業(yè)數(shù)
  private int dataNum = 0;
  public void out() {
    // 只要還有作業(yè),繼續(xù)打印
    while (dataNum > 0) {
      System.out.println("打印機(jī)打?。? + printData[0]);
      // 把作業(yè)隊(duì)列整體前移一位,并將剩下的作業(yè)數(shù)減1
      System.arraycopy(printData, 1
          , printData, 0, --dataNum);
    }
  }
  public void getData( String msg ) {
    if (dataNum >= MAX_CACHE_LINE) {
      System.out.println("輸出隊(duì)列已滿,添加失敗");
    } else {
      // 把打印數(shù)據(jù)添加到隊(duì)列里,已保存數(shù)據(jù)的數(shù)量加1。
      printData[dataNum++] = msg;
    }
  }
}
class BetterPrinter implements Output
{
  private String[] printData
      = new String[MAX_CACHE_LINE * 2];
  // 用以記錄當(dāng)前需打印的作業(yè)數(shù)
  private int dataNum = 0;
  public void out()
  {
    // 只要還有作業(yè),繼續(xù)打印
    while(dataNum > 0)
    {
      System.out.println("高速打印機(jī)正在打印:" + printData[0]);
      // 把作業(yè)隊(duì)列整體前移一位,并將剩下的作業(yè)數(shù)減1
      System.arraycopy(printData , 1, printData, 0, --dataNum);
    }
  }
  public void getData(String msg)
  {
    if (dataNum >= MAX_CACHE_LINE * 2)
    {
      System.out.println("輸出隊(duì)列已滿,添加失敗");
    }
    else
    {
      // 把打印數(shù)據(jù)添加到隊(duì)列里,已保存數(shù)據(jù)的數(shù)量加1。
      printData[dataNum++] = msg;
    }
  }
}
class Computer
{
  private Output out;
  public Computer(Output out)
  {
   this.out = out;
  }
  // 定義一個(gè)模擬獲取字符串輸入的方法
  public void keyIn(String msg)
  {
   out.getData(msg);
  }
  // 定義一個(gè)模擬打印的方法
  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("輕量級(jí)Java EE企業(yè)應(yīng)用實(shí)戰(zhàn)");
    c.keyIn("瘋狂Java講義");
    c.print();
  }
}

二 運(yùn)行

高速打印機(jī)正在打?。狠p量級(jí)Java EE企業(yè)應(yīng)用實(shí)戰(zhàn)
高速打印機(jī)正在打印:瘋狂Java講義

三 類圖

更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java面向?qū)ο蟪绦蛟O(shè)計(jì)入門與進(jìn)階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Java基于IO流讀取文件的方法

    Java基于IO流讀取文件的方法

    這篇文章主要介紹了Java基于IO流讀取文件的方法,涉及Java文件流操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-10-10
  • 詳解SpringSecurity如何實(shí)現(xiàn)前后端分離

    詳解SpringSecurity如何實(shí)現(xiàn)前后端分離

    這篇文章主要為大家介紹了詳解SpringSecurity如何實(shí)現(xiàn)前后端分離,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • java JVM原理與常識(shí)知識(shí)點(diǎn)

    java JVM原理與常識(shí)知識(shí)點(diǎn)

    在本文中小編給大家分享的是關(guān)于java的JVM原理和java常識(shí),有興趣的朋友們可以學(xué)習(xí)下
    2018-12-12
  • jxls2.4.5如何動(dòng)態(tài)導(dǎo)出excel表頭與數(shù)據(jù)

    jxls2.4.5如何動(dòng)態(tài)導(dǎo)出excel表頭與數(shù)據(jù)

    這篇文章主要介紹了jxls2.4.5如何動(dòng)態(tài)導(dǎo)出excel表頭與數(shù)據(jù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 簡單介紹一下什么是microservice微服務(wù)

    簡單介紹一下什么是microservice微服務(wù)

    這篇文章主要介紹了一下什么是microservice微服務(wù)微服務(wù)的定義,微服務(wù)到底是什么意思?什么樣的架構(gòu)可以叫做微服務(wù)?這篇文章可以給你答案
    2023-03-03
  • Mybatis動(dòng)態(tài)拼接sql提高插入速度實(shí)例

    Mybatis動(dòng)態(tài)拼接sql提高插入速度實(shí)例

    這篇文章主要介紹了Mybatis動(dòng)態(tài)拼接sql提高插入速度實(shí)例,當(dāng)數(shù)據(jù)量少的時(shí)候,沒問題,有效時(shí)間內(nèi)可能完成插入,但是當(dāng)數(shù)據(jù)量達(dá)到一定程度的時(shí)候,每次都一個(gè)sql插入超時(shí),所以采用了拼接sql的方式加快速度,需要的朋友可以參考下
    2023-09-09
  • JAVA 多線程爬蟲實(shí)例詳解

    JAVA 多線程爬蟲實(shí)例詳解

    這篇文章主要介紹了JAVA 多線程爬蟲實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • SpringBoot AOP控制Redis自動(dòng)緩存和更新的示例

    SpringBoot AOP控制Redis自動(dòng)緩存和更新的示例

    今天小編就為大家分享一篇關(guān)于SpringBoot AOP控制Redis自動(dòng)緩存和更新的示例,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Java Spring注解之@Async的基本用法和示例

    Java Spring注解之@Async的基本用法和示例

    Spring為任務(wù)調(diào)度與異步方法執(zhí)行提供了注解支持,通過在方法上設(shè)置@Async注解,可使得方法被異步調(diào)用,下面這篇文章主要給大家介紹了關(guān)于Java Spring注解之@Async的基本用法和示例,需要的朋友可以參考下
    2022-03-03
  • 入門JDK集合之HashMap解析

    入門JDK集合之HashMap解析

    HashMap---基于哈希表的 Map 接口的實(shí)現(xiàn)。此實(shí)現(xiàn)提供所有可選的映射操作,并允許使用 null 值和 null 鍵。(除了非同步和允許使用 null 之外,HashMap 類與 Hashtable 大致相同
    2021-06-06

最新評(píng)論