2019年3月27日 星期三

同步,異步,並行


  • 環境
    • 兩個執行緒(A,B),三個task(a,b,c)
  • 同步
    • 三個task依序執行,A跟B執行緒將先進來的task執行完後才會釋放,等待下一個task執行
  • 異步
    • 三個task依序執行,A跟B執行緒會不斷切換執行目前佇列的task,達到三個task同時執行的目的
    • 原因是最大的消耗是在I/O的時候,所以在I/O處理階段,執行緒會切割執行下一個task
  • 並行
    • 兩個task一組做並行,接著執行下一個task,此時兩個執行緒會同時被兩個task一組所佔用,第三個task需等待執行

2019年2月23日 星期六

工廠模式(Factory Pattern)


  • 前言
    • 工廠模式的精神在於透過類別方法,將繼承同一類別的各子類別初始化並回傳
    • 以下利用不同特徵的工廠模式例子,做進一步的說明
    • 系列文章
  • 簡單工廠模式
    • 有一類別A
      一類別A-1繼承類別A
      一類別A-2繼承類別A
    • 有一類別factory-A,提供一方法透過參數返回相對應初始化後的類別
  • 工廠模式
    • 有一類別A
      一類別A-1繼承類別A
      一類別A-2繼承類別A
    • 有一介面factory-A,提供一方法返回類別A
      一類別factory-A-1實作factory-A,覆寫方法,初始化A-1,返回A-1
      一類別factory-A-2實作factory-A,覆寫方法,初始化A-2,返回A-2
  • 抽象工廠模式
    • 有一類別A,包含以下類別B與類別C
      一類別A-1繼承類別A
      一類別A-2繼承類別A
    • 有一類別B
      一類別B-1繼承類別B
      一類別B-2繼承類別B
    • 有一類別C
      一類別C-1繼承類別C
      一類別C-2繼承類別C
    • 有一介面factory-A,提供一方法返回類別A
      一類別factory-A-1實作factory-A,初始化類別factory-BC-1,覆寫方法,初始化A-1,給予B-1與C-1,返回A-1
      一類別factory-A-2實作factory-A,初始化類別factory-BC-2,覆寫方法,初始化A-2,給予B-2與C-2,返回A-2
    • 有一介面factory-BC,提供一方法返回類別B,提供一方法返回類別C
      一類別factory-BC-1實作factory-BC,覆寫方法,初始化B-1與C-1,返回B-1與C-1
      一類別factory-BC-2實作factory-BC,覆寫方法,初始化B-2與C-2,返回B-2與C-2

2019年1月17日 星期四

策略模式(Strategy Pattern) vs 狀態模式(State Pattern)

策略模式與狀態模式的差異點在於“改變方法實際行為的時機”。

策略模式在實際執行之前,就已經決定好方法的實際行為。

狀態模式在執行的過程中,可以根據目前的狀態決定方法的實際執行為為何。

設計模式

  • 前言
    • 設計模式有很多種,每種模式都是為了解決某種情境或問題而誕生。