我正在研究一个遗留系统,它有一些“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