WebObjects/EOF/使用 EOF/EOF 最佳實踐
外觀
首先,不要造成傷害 - 在閱讀本文之前,請閱讀並遵守EOF 誡命。
不要使用
MyEO eo = new MyEO(); ec.insertObject(eo);
首選這種形式
MyEO eo = (MyEO) EOUtilities.createAndInsertInstance(ec, "MyEO");
這有兩個主要優點。一是,它防止使用未插入 EOEditingContext 的 EO(參見EOF 誡命)。二是,它支援 EOModel(s) 中兩個或多個實體由同一個 Java 類實現的情況。
這裡需要問一個合理的問題,如果這很好
MyNewPage nextPage = (MyNewPage)pageWithName(MyNewPage.class.getName());
那麼為什麼不這樣呢?
MyEO eo = (MyEO) EOUtilities.createAndInsertInstance(ec, MyEO.class.getName());
這裡的關鍵是,createAndInsertInstance? 的第二個引數是來自模型的 EOEntity 名稱,而不是類名。對於元件建立,它是類名。問題是實體名稱和類名通常不相同。類名將包含包名,但實體名稱不會。此外,我遇到過模型中的多個實體由同一個類實現的情況。Gary Teter 在 WireHose 框架中很好地利用了這一點。