我已經寫了一個簡單的程序,我已經設計了一個簡單的文本抽象。吸氣劑和二傳手在C++
但現在我有這樣的抽象模型,它只是一堆getter和setter。通常情況下,我只是把這些東西當成公共數據成員,但問題在於我不能僅僅查看數據成員,因爲將來會有一個替代代碼路徑,它們不存在於我的代碼中,但是在一個外部庫。現在我有一個可怕的笨重的get/set接口(通過方法鏈有所改進)。我能做些什麼來使它更清潔?
編輯:我的班級定義。
class Text {
public:
enum TextLayout {
TopLeft,
TopRight,
BottomLeft,
BottomRight,
Center
};
// Text
virtual string GetText() = 0;
virtual Text* SetText(const string& ref) = 0;
virtual Text* SetText(string&& ref) = 0;
// Position
virtual int GetPositionX() = 0;
virtual Text* SetPositionX(int x) = 0;
virtual int GetPositionY() = 0;
virtual Text* SetPositionY(int y) = 0;
virtual int GetSizeX() = 0;
virtual Text* SetSizeX(int sizex) = 0;
virtual int GetSizeY() = 0;
virtual Text* SetSizeY(int sizey) = 0;
virtual TextLayout GetTextLayout() = 0;
virtual Text* SetTextLayout(TextLayout layout) = 0;
virtual std::shared_ptr<Font> GetFont() = 0;
virtual Text* SetFont(const std::shared_ptr<Font>&) = 0;
virtual Text* SetFont(std::shared_ptr<Font>&&) = 0;
virtual Text* SetColour(unsigned int colour) = 0;
virtual unsigned int GetColour() = 0;
virtual Render* GetRender() = 0;
virtual ~Text();
};
返回傳遞參數你介意分享類定義有何評論? – karlphillip 2010-12-21 15:44:06
看起來對我來說完全不錯... – bezmax 2010-12-21 15:52:07