最近在重构色谱工作站程序,发现有几个类有重复性的代码(为了方便说明问题,去掉了不相关的代码):
class CAnalysisSample
{
protected:
CAnalysisSample(CAnalysisSystem* pSystem):m_pSystem(pSystem){}
public:
inline CAnalysisSystem* GetSystem() { return m_pSystem; }
inline const CAnalysisSystem* GetSystem() const { return m_pSystem; }
private:
CAnalysisSystem* m_pSystem;
};
class CAnalysisMethod
{
protected:
CAnalysisMethod(CAnalysisSystem* pSystem):m_pSystem(pSystem){}
public:
inline CAnalysisSystem* GetSystem() { return m_pSystem; }
inline const CAnalysisSystem* GetSystem() const { return m_pSystem; }
private:
CAnalysisSystem* m_pSystem;
};
class CAnalysisTask
{
protected:
CAnalysisTask(CAnalysisSystem* pSystem):m_pSystem(pSystem){}
public:
inline CAnalysisSystem* GetSystem() { return m_pSystem; }
inline const CAnalysisSystem* GetSystem() const { return m_pSystem; }
private:
CAnalysisSystem* m_pSystem;
};
class CAnalysisInstrument
{
protected: