您的位置:首页 > 游戏 > 手游 > 设计模式-装饰者模式

设计模式-装饰者模式

2024/10/6 16:23:13 来源:https://blog.csdn.net/qq_58870988/article/details/141131945  浏览:    关键词:设计模式-装饰者模式

概述

装饰者模式也是一种结构类型设计模式它可以在不改变原有结构的情况下为对象添加新的功能,和组合模式有类似的地方,满足开闭原则。主要组成部分有,装饰者装饰者接口装饰功能,然后就可以根据对应的需求,用装饰功能装饰装饰者。


需求:需要为三个小朋友装饰服饰,小明需要衣服,小张需要衣服和帽子,小红需要衣服,帽子和鞋子

装饰者模式

internal class Program
{private static void Main(string[] args){IDecorator XiaoMing = new Person("小明:");IDecorator cloth = new Clothing(XiaoMing);Console.WriteLine(cloth.Dicoration());IDecorator XiaoZhang = new Person("小张:");IDecorator CH = new Clothing(new Hat(XiaoZhang));Console.WriteLine(CH.Dicoration());IDecorator XiaoHong = new Person("小红:");IDecorator CHS = new Clothing(new Hat(new Shoe(XiaoHong)));Console.WriteLine(CHS.Dicoration());}public interface IDecorator//装饰者接口{string Dicoration();}public class Person : IDecorator//人{private readonly string _Name;public Person(string name){_Name = name;}public string Dicoration(){return _Name;}}public abstract class PersonDecorator : IDecorator//装饰者抽象类{protected IDecorator _Decorator;public PersonDecorator(IDecorator decorator){_Decorator = decorator;}public abstract string Dicoration();}public class Clothing : PersonDecorator//衣服{public Clothing(IDecorator decorator) : base(decorator) { }public override string Dicoration(){return _Decorator.Dicoration()+" 衣服";}}public class Hat : PersonDecorator//帽子{public Hat(IDecorator decorator) : base(decorator) { }public override string Dicoration(){return _Decorator.Dicoration()+" 帽子";}}public class Shoe : PersonDecorator//鞋子{public Shoe(IDecorator decorator) : base(decorator) { }public override string Dicoration(){return _Decorator.Dicoration() + " 鞋子";}}
}

输出

小明: 衣服
小张: 帽子 衣服
小红: 鞋子 帽子 衣服

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com