如果我有Store
课,我可以写
Store starbucks;
这里,变量名是对象本身的名称。
或者,我可以写
Store shop( "starbucks" );
其中name
内部变量Store
用 初始化"starbucks"
。在这里,变量名称是通用的,但对象包含特定的商店名称。
哪个更可取,什么时候?
如果我有Store
课,我可以写
Store starbucks;
这里,变量名是对象本身的名称。
或者,我可以写
Store shop( "starbucks" );
其中name
内部变量Store
用 初始化"starbucks"
。在这里,变量名称是通用的,但对象包含特定的商店名称。
哪个更可取,什么时候?
我想不出在现实世界中用于Store starbucks;
. 任何时候你想添加一个新的商店,你都必须编写所有新代码并重新编译。在测试数据之外,对于单元测试等等,永远不应该使用它。
出于类似的原因,硬编码Store shop( "starbucks" );
也是一个坏主意。同样,更改实例数据不应导致您重新编译代码。
我编写的大多数代码都使用用户输入和数据存储的组合来创建实例。这是做的类似Store shop; shop.load();
或更可能的事情Store shop = storeFactory.getStore();
另外,我更喜欢使用对象的类型作为对象的名称。这将使示例Store store = storeFactory.getStore();
。它降低了读者的认知负担,因为他们不必记住 shop 是 Store 类型。