装饰模式-坦克大战-c#

mac2024-03-15  17

概要

 动态一个象添加一些外的职责。就增加功能来Decorator模式相比生成子灵活。

类图 

运行 

代码 

using System; namespace 装饰模式 { class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); Client client = new Client(); client.main(); Console.ReadLine(); } interface IComponent { void operation(); } class SortComponent : IComponent { public void operation() { Console.WriteLine("发射炮弹"); } } class RunComponent : IComponent { public void operation() { Console.WriteLine("跑"); } } abstract class Decorator : IComponent { public Decorator(IComponent component) { this.component = component; } private IComponent component; public void operation() { this.component.operation(); addedBehaivor(); } public abstract void addedBehaivor(); } class ArmDecorator : Decorator { public ArmDecorator(IComponent component) : base(component){} public override void addedBehaivor() { Console.WriteLine("红外瞄准"); } } class GpsDecorator : Decorator { public GpsDecorator(IComponent component) : base(component) { } public override void addedBehaivor() { Console.WriteLine("卫星定位"); } } class Client { public void main() { SortComponent sortComponent = new SortComponent(); ArmDecorator armDecorator = new ArmDecorator(sortComponent); GpsDecorator gpsDecorator = new GpsDecorator(armDecorator); gpsDecorator.operation(); } } } }

英语

component adj. 组成的,构成的; n. 成分; 组件; [电子] 元件 operation n. 操作; 经营; [外科] 手术; [数][计] 运算 decorator n. 装饰者; 室内装潢师 concrete adj. 混凝土的; 实在的,具体的; 有形的; vi. 凝结; vt. 使凝固; 用混凝土修筑;

最新回复(0)