我正在研究一個遺留系統,它有一些「OO Buzzwords」皺眉和一些我個人不喜歡的設計問題。Java與OO設計
這是一個漫畫書店的股票和銷售處理程序。
我有一個Article
類,它可以是任何物品(魔術卡,玩具),以及代表書籍和雜誌的繼承自文章的Publication
類。 A Publication
有作者和可選的問題編號,而文章沒有。
有一個文章編輯器,它是一個GUI來創建和修改文章。既然有裝載有錯誤發佈,而不是添加捲數的可能性,該接口與文章的工作是:
Article a = EntityManager.loadArticle(articleId);
ArticleEditor editor = new ArticleEditor(a);
a = e.getValue();
允許被改變成一個出版物,如有需要。
我的一個祕密是,如果它使用引用,或者至少在我看來,這可以更優雅地處理。我目前的版本使用了靜態版本中最後兩行的模式,但它仍然看起來很醜,因爲它看起來過於依賴狀態。
第二個問題帶有Java的(也是最「企業」語言)缺乏多分派:EntityManager的有save()
方法,重載兩個Article
S和Publication
秒。這會導致如果我說一個巨大的問題,例如:
Article a = EntityManager.loadArticle(articleId);
ArticleEditor editor = new ArticleEditor(a);
a = e.getValue();
EntityManager.save(a);
這是目前「解決」由具有ArticleEditor保存更改(這似乎是錯誤的)。
我確定必須有一些方法來調整設計以消除這些問題。 (我不介意整個重寫,如果需要的話)。
我如何調整設計,以消除這些問題?
編輯:出版也有作者,不僅數字。
問題是? – Bozho 2009-12-22 20:05:51
「問題」中沒有單個問號。 – mk12 2009-12-22 20:10:17
看到http://bikeshed.com/ – 2009-12-22 20:22:44