zoukankan      html  css  js  c++  java
  • C# 设计模式(10)装饰器模式

    装饰器模式

    1.继承+组合

    2. AOP编程思想的一种实现

    代码实现:

    员工:

    namespace DecoratorPattern
    {
        public abstract class AbstractEmployee
        {
            public int Id { get; set; }
            public string Name { get; set; }
    
            public abstract void Work();
        }
        public class Employee : AbstractEmployee
        {
            public override void Work()
            {
                Console.WriteLine($"{this.GetType().Name} 上班八小时.");
            }
        }
    }
    

    装饰器:

    namespace DecoratorPattern.Decorator
    {
        public class BaseEmployeeDecorator:AbstractEmployee
        {
            private readonly AbstractEmployee _employee;
    
            public BaseEmployeeDecorator(AbstractEmployee employee)
            {
                _employee = employee;
            }
            public override void Work()
            {
                _employee.Work();
            }
        }
        public class EmployeeSoftwareDecorator:BaseEmployeeDecorator
        {
            private readonly AbstractEmployee _employee;
    
            public EmployeeSoftwareDecorator(AbstractEmployee employee) : base(employee)
            {
                _employee = employee;
            }
    
            public override void Work()
            {
                _employee.Work();
                Console.WriteLine($"{this.GetType().Name} 留下来加个班.");
            }
        }
    }
    

    代码调用:

        class Program
        {
            static void Main(string[] args)
            {
               AbstractEmployee  employee = new Employee() { Id = 101, Name = "Alex" };
               employee = new EmployeeSoftwareDecorator(employee);
               employee.Work();
            }
        }
    

    结果:

  • 相关阅读:
    Android MediaRecorder实现暂停断点录音功能
    Sqlite 数据库分页查询(ListView分页显示数据)
    Android 一键直接查看Sqlite数据库数据
    Android setTag()/getTag()
    sqlite3常用命令&语法
    Android 编辑框插入表情图片
    奇怪++操作
    hdu5024(dp)
    Windows Azure VM两shut down 道路
    android简单的计算器
  • 原文地址:https://www.cnblogs.com/YourDirection/p/14078058.html
Copyright © 2011-2022 走看看