我正在編寫一個撲克手評估器作爲我的第一個編程項目。我已經完成了三個類,每個類都很好地完成了其狹義定義的任務:有明確的,狹隘的課程......現在我怎麼在我的程序中完成任何事情?
HandRange =類似字符串的對象(例如「AA」)。 getHands()返回一個元組列表的字符串中的每個特定的手:
[(Ad,Ac),(Ad,Ah),(Ad,As),(Ac,Ah),(Ac,As),(Ah,As)]
翻譯=映射從getHands到對於一個給定的評估有用的值(是的,這大概可以返回列表的字典重構爲另一個類)。
{'As':52, 'Ad':51, ...}
計算器=需要從HandRange列表(如翻譯的翻譯),枚舉所有可能的手的對決,並提供每個贏得%。
我的問題:考慮到我可能想通過shell UI或GUI連接它,我應該使用所有這些類的「域」類應該是什麼樣子?現在,它看起來像一個流水線過程:
user_input = HandRange()
x = Translation.translateList(user_input)
y = Evaluator.getEquities(x)
這聞起來好笑,因爲它感覺像程序時,我應該使用OO。
用更普通的方式:如果我花了那麼多時間來確保我的類是精確定義的,狹隘的聚焦,正交的,無論如何......當我需要使用時,如何在程序中實際管理工作流程他們全部連在一起?
感謝,
邁克
「這聽起來很有趣,因爲當我應該使用面向對象時,它感覺像是程序性的。」算法不是固有程序性的嗎?它的實際問題是什麼? OO編程圍繞着核心程序編程。除此之外還可以指定哪些方面?你有一個更「程序性」的替代程序嗎? – 2010-07-21 15:43:46