簡體   English   中英

單例多態

[英]Singleton Polymorphism

讓我們假設我有棋盤的單例表示,由雙維單元陣列組成。 有時我希望該表示被視為行板,有時是列,有時是網格,但是這種情況中的每一種都必須在相同的底層單例板上工作

所以我有 4 個類要實現:

class CheesBoard : singleton consist of just a stright dd array of cells
class CheesBoardAsGrids : consist of that same cells but presented by grids
class CheesBoardAsRows : strigtforward as above but rows
class CheesBoardAsColumns : ... you already get it

而且我不知道它們之間應該建立什么樣的關系才能使其最具可讀性和可重用性

例如:我不能從 CheesBoard 繼承,因為它是單身

單例,顧名思義,是一個你想被實例化不超過一次的對象。

您可以創建抽象類 Board。 CheesBoardAsGridsCheesBoardAsRowsCheesBoardAsColumns類將從這個類繼承。 CheesBoard 類應該包含 Board 變量。

如果你想讓你的單例用一些數據初始化,你可以在 getInstance 方法之后用數據加載它。

CheesBoard 類應該包含 init 方法。 此方法將獲取 Board 參數並初始化 Board 變量:

Board board = new CheesBoardAsGrids();
CheesBoard singleton = CheesBoard.getInstance();
singleton.init(board);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM