首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >装饰类的构造函数有参数吗?

装饰类的构造函数有参数吗?
EN

Stack Overflow用户
提问于 2009-08-05 11:37:40
回答 1查看 2.1K关注 0票数 2

我使用了装饰器模式,并且用一个带参数的构造函数来装饰一个类。

下面是类装饰的构造函数;

代码语言:javascript
运行
复制
Public Sub New(ByVal repository As ISchedulingRespository)

  Me.repository = repository

  End Sub

因为我的装饰器类继承了装饰类,所以我需要声明它的构造函数,如下所示;

代码语言:javascript
运行
复制
 Public Sub New(ByVal schedulingService as SchedulingService, ByVal repository As ISchedulingRespository)

        MyBase.New(repository)
        Me.instance = instance
   End Sub

因此,当我创建装饰器类时,我传入了装饰器类的一个实例以及要装饰类所需的参数。这可以在下面看到;

代码语言:javascript
运行
复制
 Dim schedulingServiceDecorator As New SchedulingServiceEventDecorator(schedulingService, schedulingRepository)

这在我看来是不正确的。我是不是在这个模式中遗漏了什么?

我可以简单地不在装饰器构造函数中传入装饰类,但是在此模式上看到的每个文章都将被装饰类的一个实例传递给装饰器。

这是为了满足您的需求而修改模式的情况吗?

非常感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-08-05 11:47:06

Decorator Pattern中,您应该继承装饰类的接口,然后在构造函数中传递实现。看起来您是从具体的SchedulingService类继承的。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1232716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档