zar*_*zar 4 c++ oop design-patterns
我正在使用OOD和设计模式创建密码模块.该模块将记录可记录事件的日志并读取/写入文件.我在基类中创建了接口并在派生类中实现.现在我想知道如果基类只有一个派生类,这是不是有点难闻.这种类层次结构是否不必要?现在要消除类层次结构,我当然可以在一个类中完成所有操作而不是派生,这是我的代码.
class CLogFile
{
public:
CLogFile(void);
virtual ~CLogFile(void);
virtual void Read(CString strLog) = 0;
virtual void Write(CString strNewMsg) = 0;
};
Run Code Online (Sandbox Code Playgroud)
派生类是:
class CLogFileImpl :
public CLogFile
{
public:
CLogFileImpl(CString strLogFileName, CString & strLog);
virtual ~CLogFileImpl(void);
virtual void Read(CString strLog);
virtual void Write(CString strNewMsg);
protected:
CString & m_strLog; // the log file data
CString m_strLogFileName; // file name
};
Run Code Online (Sandbox Code Playgroud)
现在在代码中
CLogFile * m_LogFile = new CLogFileImpl( m_strLogPath, m_strLog );
m_LogFile->Write("Log file created");
Run Code Online (Sandbox Code Playgroud)
我的问题是,我一方面关注OOD主体并首先创建接口并在派生类中实现.另一方面,这是一种矫枉过正,它会使事情变得复杂吗?我的代码非常简单,不使用任何设计模式,但它通过派生类在通用数据封装方面确实从中获得了线索.
最终上面的类层次结构是好还是应该在一个类中完成?
| 归档时间: |
|
| 查看次数: |
310 次 |
| 最近记录: |