C#裝飾者模式實(shí)例分析
更新時(shí)間:2014年10月12日 09:58:17 投稿:shichen2014
這篇文章主要介紹了C#裝飾者模式,是C#中比較常見(jiàn)的設(shè)計(jì)模式,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
本文實(shí)例講述了C#裝飾者模式。分享給大家供大家參考。具體方法如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 裝飾者
{
class Program
{
static void Main(string[] args)
{
ConcreteComponent con = new ConcreteComponent();
ConcreteDecoratorA a = new ConcreteDecoratorA();
a.SetComponent(con);
a.Operation();
a.AddBehavior();
Console.WriteLine("============================");
ConcreteDecoratorB B = new ConcreteDecoratorB();
B.SetComponent(a);
a.AddBehavior();
B.Operation();
B.AddBehavior();
}
public abstract class Component
{
public abstract void Operation();
}
abstract class Decorator : Component
{
private Component component;
public void SetComponent(Component component)
{
this.component = component;
}
public override void Operation()
{
if (component != null)
{
component.Operation();
}
}
}
class ConcreteDecoratorA : Decorator
{
public override void Operation()
{
base.Operation();
}
public void AddBehavior()
{
Console.WriteLine("裝飾A類的操作!");
}
}
class ConcreteDecoratorB : Decorator
{
public override void Operation()
{
base.Operation();
}
public void AddBehavior()
{
Console.WriteLine("裝飾B類的操作!");
}
}
public class ConcreteComponent : Component
{
public override void Operation()
{
Console.WriteLine("具體對(duì)象的操作!");
}
}
}
}
希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:
- 深入解析C#設(shè)計(jì)模式中對(duì)橋接模式的具體運(yùn)用
- 簡(jiǎn)單了解C#設(shè)計(jì)模式編程中的橋接模式
- C#設(shè)計(jì)模式編程中運(yùn)用適配器模式結(jié)構(gòu)實(shí)戰(zhàn)演練
- 解析C#設(shè)計(jì)模式編程中適配器模式的實(shí)現(xiàn)
- C#編程中使用設(shè)計(jì)模式中的原型模式的實(shí)例講解
- 深入解析C#設(shè)計(jì)模式編程中對(duì)建造者模式的運(yùn)用
- 詳解C#的設(shè)計(jì)模式編程之抽象工廠模式的應(yīng)用
- 使用設(shè)計(jì)模式中的工廠方法模式進(jìn)行C#編程的示例講解
- 實(shí)例解析C#設(shè)計(jì)模式編程中簡(jiǎn)單工廠模式的使用
- 舉例講解C#編程中對(duì)設(shè)計(jì)模式中的單例模式的運(yùn)用
- 解析C#設(shè)計(jì)模式編程中的裝飾者模式
相關(guān)文章
深入解析C#設(shè)計(jì)模式中對(duì)橋接模式的具體運(yùn)用
這篇文章主要介紹了C#設(shè)計(jì)模式中對(duì)橋接模式的具體運(yùn)用,橋接模式所強(qiáng)調(diào)的解耦在代碼維護(hù)中非常有用,需要的朋友可以參考下2016-02-02
C#實(shí)現(xiàn)根據(jù)給出的相對(duì)地址獲取網(wǎng)站絕對(duì)地址的方法
這篇文章主要介紹了C#實(shí)現(xiàn)根據(jù)給出的相對(duì)地址獲取網(wǎng)站絕對(duì)地址的方法,涉及C#URL及字符串操作的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
C#使用委托實(shí)現(xiàn)的快速排序算法實(shí)例
這篇文章主要介紹了C#使用委托實(shí)現(xiàn)的快速排序算法,實(shí)例分析了C#委托機(jī)制與快速排序算法的實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-07-07
淺談C# async await 死鎖問(wèn)題總結(jié)
這篇文章主要介紹了淺談C# async await 死鎖問(wèn)題總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
c#制作簡(jiǎn)單啟動(dòng)畫(huà)面的方法
這篇文章主要介紹了c#制作簡(jiǎn)單啟動(dòng)畫(huà)面的方法,涉及C#實(shí)現(xiàn)桌面程序啟動(dòng)畫(huà)面的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
ListView用法中與滾動(dòng)相關(guān)的需求實(shí)現(xiàn)
這篇文章主要介紹了ListView用法中與滾動(dòng)相關(guān)的需求實(shí)現(xiàn),獲取并設(shè)置ListView的滾動(dòng)位置,以及獲取滾動(dòng)位置處的項(xiàng)目,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06

