Design patterns 是否有任何设计模式可以根据执行的上下文以不同的方式执行相同的方法
我正在重构一些代码,我想要的是让该方法根据其执行的上下文执行额外的操作 例如: 如果当前方法如下所示Design patterns 是否有任何设计模式可以根据执行的上下文以不同的方式执行相同的方法,design-patterns,language-agnostic,Design Patterns,Language Agnostic,我正在重构一些代码,我想要的是让该方法根据其执行的上下文执行额外的操作 例如: 如果当前方法如下所示 public void func1() { /// Operation Set 1 /// Operation Set 2 // Operation Set 3 // Operation Set 4 } 我希望它是这样的: // After refactoring punlic void func1() { /// Operation Set 1 if( context ==
public void func1() {
/// Operation Set 1
/// Operation Set 2
// Operation Set 3
// Operation Set 4
}
我希望它是这样的:
// After refactoring
punlic void func1() {
/// Operation Set 1
if( context == FULL || context == EXEC_REQUIRED )
{
/// Operation Set 2
if( context === EXEC_REQUIRED )
{
// Operation Set 3
// Operation Set 4
}
}
}
因此,我只是想知道是否有任何设计模式已经
目前我可以考虑两种解决方案
如果你有任何解决办法,那将是有益的 这听起来对主观性很重要,这几年来一直是Smalltalk社区(主要)研究工作的主题。我最新知道的是在包中实现的(Daniel Langone…硕士论文,伯尔尼大学,2011年2月)。几年前,我还在Squeak中使用了Darders和Prieto模型 主观性提供了一个框架,以确定可根据消息的发送者、接收者、甚至上下文或此类因素的任何组合来选择哪些主观行为,即使考虑到优先级或强制力
尽管对于您的目的来说可能是压倒性的,但在纯文本技术(如主流语言)中实现此类方法可能会成为一项传奇性的任务,因为需要在真实对象环境中进行培训,并且大多数实现都提供了构建专用代码浏览器的工具和/或建议,这就是Smalltalk仍然闪耀的地方。这听起来很有主观性,几年来,主观性一直是Smalltalk社区(主要)研究工作的主题。我最新知道的是在包中实现的(Daniel Langone…硕士论文,伯尔尼大学,2011年2月)。几年前,我还在Squeak中使用了Darders和Prieto模型 主观性提供了一个框架,以确定可根据消息的发送者、接收者、甚至上下文或此类因素的任何组合来选择哪些主观行为,即使考虑到优先级或强制力
尽管对于您的目的来说可能是压倒性的,但在纯文本技术(如主流语言)中实现此类方法可能会成为一项传奇性的任务,因为需要在真实对象环境中进行培训,并且大多数实现都提供了构建专用代码浏览器的工具和/或建议,这就是Smalltalk仍然大放异彩的地方。根据,您所描述的可能不是最好的想法(从干净代码的角度来看)。我会尝试一种多态的方法(例如,the)。我同意。。。但在我的例子中,这是不可能的,因为一切都是在构造函数中发生的(更准确地说,是基到基构造函数)。我提到的问题只是简单的版本。因此,我唯一的选择是以某种方式为这个构造函数提供上下文,并使用ifelse逻辑。这个问题让我想到了。根据,您所描述的可能不是最好的想法(从干净代码的角度来看)。我会尝试一种多态的方法(例如,the)。我同意。。。但在我的例子中,这是不可能的,因为一切都是在构造函数中发生的(更准确地说,是基到基构造函数)。我提到的问题只是简单的版本。所以我唯一的选择就是以某种方式为这个构造函数提供上下文,并使用ifelse逻辑。