亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

戰略模式的現實世界范例

戰略模式的現實世界范例

江戶川亂折騰 2019-07-22 19:04:18
戰略模式的現實世界范例我一直在讀關于OCP主體以及如何利用戰略模式來實現這一目標。我本打算嘗試向幾個人解釋這一點,但我能想到的唯一例子是根據“Order”的狀態使用不同的驗證類。我在網上讀過幾篇文章,但這些文章通常并不描述使用這種策略的真正原因,比如生成報告/賬單/驗證等等.有沒有任何現實世界的例子,你認為戰略模式是常見的?
查看完整描述

3 回答

?
catspeake

TA貢獻1111條經驗 獲得超0個贊

那這個呢?

你必須加密一個文件。

對于小文件,您可以使用“內存中”策略,在內存中讀取和保存完整的文件(比如文件<1GB)

對于大型文件,可以使用另一種策略,其中文件的部分在內存中讀取,部分加密結果存儲在tmp文件中。

對于相同的任務,這可能是兩種不同的策略。

客戶端代碼看起來是一樣的:

 File file = getFile();
 Cipher c = CipherFactory.getCipher( file.size() );
 c.performAction();// implementations:interface  Cipher  {
     public void performAction();}class InMemoryCipherStrategy implements Cipher { 
         public void performAction() {
             // load in byte[] ....
         }}class SwaptToDiskCipher implements Cipher { 
         public void performAction() {
             // swapt partial results to file.
         }}

這個

     Cipher c = CipherFactory.getCipher( file.size() );

將返回密碼的正確策略實例。

我希望這能幫到你。

(我甚至不知道密碼是否是正確的詞:P)


查看完整回答
反對 回復 2019-07-22
?
慕田峪4524236

TA貢獻1875條經驗 獲得超5個贊

我可以想到幾個相當簡單的例子:

  • 整理一份名單。策略是用來決定列表中的哪一項是“第一項”的比較。
  • 您可能有一個應用程序,其中排序算法本身(快速排序、HeapSort等)可以在運行時選擇
  • 中的附錄、布局和過濾器

    Log4Net

    Log4j

  • 布局管理器

    在UI工具包中
  • 數據壓縮您可能有一個ICompreser接口,它的唯一方法如下所示:

    字節[]壓縮(字節[]輸入);

    您的具體壓縮類可能是RunLengthCompress、DeflateCompress等。


查看完整回答
反對 回復 2019-07-22
  • 3 回答
  • 0 關注
  • 480 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號