我有一个类,我可以像这样写:
class FileNameLoader
{
public:
virtual bool LoadFileNames(PluginLoader&) = 0;
virtual ~FileNameLoader(){}
};
Run Code Online (Sandbox Code Playgroud)
或这个:
class FileNameLoader
{
public:
virtual bool LoadFileNames(PluginLoader&, Logger&) = 0;
virtual ~FileNameLoader(){}
};
Run Code Online (Sandbox Code Playgroud)
第一个假定Logger&在实现中有一个成员FileNameLoader.第二个没有.但是,我有一些类有很多内部使用的方法Logger.所以第二种方法会让我在这种情况下编写更多代码.Logger目前是一个单身人士.我的猜测是它会保持这种状态.这两者中更"美丽"的是什么?为什么?通常的做法是什么?
编辑:如果这个班级没有被命名Logger怎么办?:).我也有Builder.那怎么样?
我没有看到两个方法有多于一个的额外优势(甚至考虑单元测试!),实际上有两个,你必须确保在你调用特定方法的任何地方,一个Logger可以传入 - 这可能会成为事物复杂...
使用记录器构造对象后,您是否真的看到需要更改它?如果没有,为什么还要接受方法二呢?
| 归档时间: |
|
| 查看次数: |
216 次 |
| 最近记录: |