Bla*_*way 0 c++ design-patterns naming-conventions
在我们的系统中,我们有许多类,其构造必须异步发生.我们将构造过程包装在另一个派生类中,该类派生自一个IConstructor
类:
class IConstructor {
public:
virtual void Update() = 0;
virtual Status GetStatus() = 0;
virtual int GetLastError() = 0;
};
Run Code Online (Sandbox Code Playgroud)
当前系统的设计存在一个问题 - 创建IConstructor
衍生类的功能通常会执行额外的工作,这些工作也会失败.此时,不是获取可以查询错误的构造函数,而是NULL
返回指针.
重构代码以避免这种情况是可能的,但是很耗时.在此期间,我决定创建一个构造函数类,我们创建并在出错时返回,而不是NULL
指针:
class FailedConstructor : public IConstructor
public:
virtual void Update() {}
virtual Status GetStatus() { return STATUS_ERROR; }
virtual int GetLastError() { return m_errorCode; }
private: int m_errorCode;
};
Run Code Online (Sandbox Code Playgroud)
所有这些都是一个平凡问题的设置:我怎么命名这个FailedConstructor
班级?在我们当前的系统中,FailedConstructor
将指示"构造一个实例的类Failed
",而不是"表示构造另一个类的失败尝试的类".
我觉得它应该以其中一种设计模式命名,比如Proxy
或Adapter
,但我不确定是哪种.
编辑:我应该清楚地表明,我正在寻找一个坚持理想的GoF设计模式之一的答案,或者其他一些完善的命名惯例.
为了回答你的字面问题,我可能会选择ConstructorFailure
,因为它描述了失败的事件.
但是,我可能更进一步,使它成为一个Exception
,在这种情况下ConstructorException
,听起来不是太破旧.你有什么理由想要归还而不是抛弃它吗?