Decorator Pattern - C# 3.0 Design Patterns
生活随笔
收集整理的這篇文章主要介紹了
Decorator Pattern - C# 3.0 Design Patterns
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Decorator Pattern屬于Structural Patterns
介紹:
Decorator pattern的作用是提供一種方式動態(tài)的給一個(gè)對象添加新的職責(zé)或狀態(tài),被裝飾的對象并不知道被“裝飾”了。A key implementation point in the Decorator pattern is that decorators both inherit the original class and contain an instantiation of it.
實(shí)現(xiàn):
UML 類圖
public interface IComponent{string Operation();}/// <summary>/// 被裝飾者/// </summary>public class Component : IComponent{#region IComponent Memberspublic string Operation(){return "I'm a photo;";}#endregion}/// <summary>/// 裝飾者A/// </summary>public class DecoratorA : IComponent{IComponent component;public DecoratorA(IComponent component){this.component = component;}#region IComponent Memberspublic string Operation(){return component.Operation() + "and decorated by DecoratorA";}#endregion}/// <summary>/// 裝飾者B/// </summary>public class DecoratorB : IComponent{IComponent component;public string AddedState = " and added state";public DecoratorB(IComponent component){this.component = component;}#region IComponent Memberspublic string Operation(){return component.Operation() + "and decorated by DecoratorB";}public string AddedBehavior(){return " and added behavior by DecoratorB";}#endregion}public class Client{public static void Display(string s, IComponent component){Console.WriteLine(s + component.Operation());}}[TestFixture]public class DecoratorTest{[Test]public void T1(){var component = new Component();Client.Display(string.Empty, component);var decoratorB = new DecoratorB(component);Client.Display("hello!", decoratorB);}}轉(zhuǎn)載于:https://www.cnblogs.com/dushouke/archive/2012/03/16/2400274.html
總結(jié)
以上是生活随笔為你收集整理的Decorator Pattern - C# 3.0 Design Patterns的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL数据基本操作
- 下一篇: Cocos2d-CCScene所有场景切