丁香五月婷婷黄色视频_97在线看观看免费_男女xo嘿咻嘿咻动态图_最近更新在线中文字幕人妻

?

翻譯設計模板 C#設計模式系列:模板方法模式(Template Method)

日期:2023-03-11 12:39:36 / 人氣: 419 / 發(fā)布者:成都翻譯公司

在軟件系統(tǒng)中,將多個類的共有內(nèi)容提取到一個模板中的思想便是模板方法模式的思想。2、模板方法模式結(jié)構(gòu)3、模板方法模式結(jié)構(gòu)實現(xiàn)4、模板方法模式應用分析模板方法模式特點:

當你去銀行取錢時翻譯設計模板,銀行會給你一張取款單。此提款表是一個模板。它將公共內(nèi)容提取到模板中,只留下一部分供用戶填寫。 在軟件系統(tǒng)中,將多個類的公共內(nèi)容提取到模板中的思想就是模板方法的思想圖案。

模板方法模式是一種基于繼承的代碼復用的基本技術(shù)。在模板方法模式中,相同的代碼可以放在父類中,不同的方法實現(xiàn)可以放在不同的子類中。

在模板方法模式下,需要準備一個抽象類,以具體方法和具體構(gòu)造函數(shù)的形式實現(xiàn)部分邏輯,然后聲明一些抽象方法,讓子類實現(xiàn)剩余的邏輯。不同的子類可以以不同的方式實現(xiàn)這些抽象方法。

1.1>,定義

定義運行中算法的框架并將這些步驟推遲到子類中。模板方法模式允許子類在不改變算法結(jié)構(gòu)的情況下重新定義算法的某些特定步驟。

1.2>、使用頻率

中等的

2、模板方法模式結(jié)構(gòu)

2.1>、結(jié)構(gòu)圖

2.2>, 參與者

模板方法模式的參與者:

? AbstractClass:定義一個模板,其子類將重新定義 PrimitiveOperation1 和 PrimitiveOperation2 操作。

? ConcreteClass:實現(xiàn)PrimitiveOperation1和PrimitiveOperation2,完成算法中與具體子類(Client)相關(guān)的內(nèi)容。

在模板方法模式下,AbstractClass中的TemplateMethod提供了一個標準模板翻譯設計模板,其中包含兩個方法,PrimitiveOperation1和PrimitiveOperation2。這兩種方法的內(nèi)容可以由Client根據(jù)自己的需要改寫。

3、 模板方法模式結(jié)構(gòu)實現(xiàn)

抽象類.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DesignPatterns.TemplateMethodPattern.Structural
{
    public abstract class AbstractClass
    {
        public abstract void PrimitiveOperation1();
        public abstract void PrimitiveOperation2();
        /// 
        /// The "Template method"
        /// 
        public void TemplateMethod()
        {
            PrimitiveOperation1();
            PrimitiveOperation2();
            Console.WriteLine("");
        }
    }
}

具體類A.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DesignPatterns.TemplateMethodPattern.Structural
{
    public class ConcreteClassA : AbstractClass
    {
        public override void PrimitiveOperation1()
        {
            Console.WriteLine("ConcreteClassA.PrimitiveOperation1()");
        }
        public override void PrimitiveOperation2()
        {
            Console.WriteLine("ConcreteClassA.PrimitiveOperation2()");
        }
    }
}

具體類B.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DesignPatterns.TemplateMethodPattern.Structural
{
    public class ConcreteClassB : AbstractClass
    {
        public override void PrimitiveOperation1()
        {
            Console.WriteLine("ConcreteClassB.PrimitiveOperation1()");
        }
        public override void PrimitiveOperation2()
        {
            Console.WriteLine("ConcreteClassB.PrimitiveOperation2()");
        }
    }
}

程序.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DesignPatterns.TemplateMethodPattern.Structural;
namespace DesignPatterns.TemplateMethodPattern
{
    class Program
    {
        static void Main(string[] args)
        {
            AbstractClass aA = new ConcreteClassA();
            aA.TemplateMethod();
            AbstractClass aB = new ConcreteClassB();
            aB.TemplateMethod();
        }
    }
}

運行輸出:

ConcreteClassA.PrimitiveOperation1()
ConcreteClassA.PrimitiveOperation2()
ConcreteClassB.PrimitiveOperation1()
ConcreteClassB.PrimitiveOperation2()
請按任意鍵繼續(xù). . .

4、模板方法模式的應用分析

模板方法模式的應用情況:

? 一次性實現(xiàn)算法的不變部分,將可變行為留給子類來實現(xiàn)。

? 應將每個子類中的共同行為提取出來并集中到一個共同的父類中,以避免代碼重復。

? 控制子類擴展。模板方法只允許在特定點擴展,而模板部分是穩(wěn)定的。

模板方法模式的特點:

? TemplateMethod 模式是一種非?;A的設計模式,在面向?qū)ο笙到y(tǒng)中被廣泛使用。它使用*簡潔的機制(基本、多態(tài))為眾多應用框架提供靈活的擴展點,是代碼復用的基本實現(xiàn)結(jié)構(gòu)。

? 在具體實現(xiàn)上,TemplateMethod調(diào)用的虛方法可以有實現(xiàn)也可以沒有實現(xiàn)(抽象方法或虛方法)。但一般建議將它們設置為受保護的方法,以便只有子類可以訪問它們。

? 模板方法模式通過擴展子類來增加新的行為,符合“開閉原則”。

相關(guān)閱讀Relate

  • 法國簽證營業(yè)執(zhí)照翻譯件模板 你與申根簽證只有一條推送的距離
  • 江蘇省增值稅發(fā)票翻譯模板 江蘇稅務局出口貨物退(免)稅申報管理系統(tǒng)軟件
  • 肄業(yè)證書翻譯模板 復旦大學學生學業(yè)證明文書管理細則(試行)
  • 四級英語作文模板帶翻譯 大學英語四級翻譯模擬訓練及答案
  • 社會某信用代碼證翻譯模板 js驗證某社會信用代碼,某社會信用代碼 驗證js,js+驗證+社會信用代碼證
  • 美國移民證件翻譯模板 日語簽證翻譯聊聊身份證翻譯模板
  • 翻譯軟件模板 人類史上*實用的的文檔快速翻譯指南
  • 江蘇省增值稅發(fā)票翻譯模板 江蘇出口貨物退(免)稅申報管理服務平臺
  • 瑞士簽證房產(chǎn)證翻譯件模板 瑞士探親簽證—就讀子女
  • 日語戶口本翻譯模板 戶口本翻譯價格_戶口本翻譯一般多少錢?
  • 翻譯設計模板 C#設計模式系列:模板方法模式(Template Method) www.angeldealglobal.com/fymb/5783.html
    ?
    本站部分內(nèi)容和圖片來源于網(wǎng)絡用戶和讀者投稿,不確定投稿用戶享有完全著作權(quán),根據(jù)《信息網(wǎng)絡傳播權(quán)保護條例》,如果侵犯了您的權(quán)利,請聯(lián)系:chinazxzy@163.com,及時刪除。
    Go To Top 回頂部
    • 掃一掃,微信在線