Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 滥用术语;初始化";?_Design Patterns_Naming - Fatal编程技术网

Design patterns 滥用术语;初始化";?

Design patterns 滥用术语;初始化";?,design-patterns,naming,Design Patterns,Naming,我正在为现有应用程序的一部分进行重新设计,我遇到了一个最棘手的编程问题:正确命名:) 我有一个类(a),可以创建B的实例。每个A都有一个活动的B对象。 要激活对象,它调用B上的方法Initialize,将引用传递给自身B将检查A的状态,订阅A中的更改等 在某个时刻,A可以决定它不再需要B,此时B进入一个可以重用的对象池。A的不同实例可以决定拾取现有的B对象,而不是创建一个 发生这种情况时,将对现有对象B再次调用Initialize方法 现在,我觉得这可能会令人困惑,因为人们可能期望初始化只发生一

我正在为现有应用程序的一部分进行重新设计,我遇到了一个最棘手的编程问题:正确命名:)

我有一个类(
a
),可以创建
B
的实例。每个
A
都有一个活动的
B
对象。 要激活对象,它调用
B
上的方法
Initialize
,将引用传递给自身
B
将检查
A
的状态,订阅
A
中的更改等

在某个时刻,
A
可以决定它不再需要
B
,此时
B
进入一个可以重用的对象池。
A
的不同实例可以决定拾取现有的
B
对象,而不是创建一个

发生这种情况时,将对现有对象
B
再次调用
Initialize
方法


现在,我觉得这可能会令人困惑,因为人们可能期望初始化只发生一次在这种情况下,有没有更好的通用术语?我还想介绍
Initialize
方法的一个补充,它告诉
B
它可以停止关注
a

,我想你在描述中已经提到了这个术语:

为了激活该对象,它在B上调用一个方法Initialize,将引用传递给它自己


Activate和Deactivate是合适的方法名称。

在类似的情况下,我使用Attach()和Dettach()表示对象之间的临时连接

bInstance.Attach(this)
后来把它放回游泳池的时候

bInstance.Dettach()

有趣的是,在同一个设计中,我已经在使用Activate和Deactivate来实现其他一些功能。我将不得不考虑这是否会造成更多的混乱,但我可以看到它是如何合适的。你最好的术语经常会出现在你试图用尽可能简单的英语来描述概念的时候。