相关疑难解决方法(0)

为什么我们需要装饰器设计模式中的装饰器?

假设我有一个名为的类A,我想使用装饰器设计模式.如果我错了,请纠正我,但为了工作,我们需要创建一个装饰器类,比如说ADecorator,它将保存对A实例的引用,所有其他装饰器将扩展它以添加功能.

我不明白为什么我们必须创建一个装饰器类,而不是使用A实例?

java design-patterns decorator

14
推荐指数
2
解决办法
3860
查看次数

装饰者模式的例子

我正在浏览Decorator设计模式,看到每个第二个示例都使用了一个抽象装饰器类,并且还实现了要为其创建装饰器的类的接口.我的问题是,

  1. 是否有必要拥有一个抽象装饰器类,然后定义具体的装饰器?

  2. 我创建了一个样本,我认为它可以类似于上面提到的Abstract类方法所实现的功能.

     public interface ICarModel
     {
       Int32 Price { get; }
       Int32 Tax { get; }
     }
    
     public class BaseModel : ICarModel
     {
       public Int32 Price
       {
         get { return 50000; }
       }
    
       public Int32 Tax
       {
         get { return 5000; }
       }
    
       public String GetBaseCarDetails()
       {
         return "Base car model Price is : " + this.Price
           + " and Tax is : " + this.Tax;
       }
     }
    
     public class LuxuryModel
     {
       ICarModel _iCarModel;
    
       public LuxuryModel(ICarModel iCarModel) …
    Run Code Online (Sandbox Code Playgroud)

c# design-patterns

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

design-patterns ×2

c# ×1

decorator ×1

java ×1