2010-10-27 76 views
0

在開發Web應用程序的過程中,我們以模塊化方式安排了一切,就像我們有我們的操作類一樣,這些操作類負責與View業務組件以及持久性組件和每個組件經過很好的測試和正常工作。有關應用程序設計的一般問題

我的問題是什麼是對操作組件與業務組件整合,使我們能夠實現最大的靈活性,以及​​抽象的更高水平,以便今後任何對業務層的變化不應該強制使用在任何改變的最佳途徑行動組件。

另請注意,我們根本不使用EJB。

回答

0

假設你的設計是這樣的:

  1. Http請求傳遞到操作組件。
  2. 操作組件訪問業務組件。
  3. 東西生成基於業務組件的視圖組件。
  4. Http請求從Action Component傳遞給View(可能是JSP)。

如果希望操作組件對步驟3不可知,則使業務組件生成查看組件。這裏是一個javaish,方法:

 

package some.model.package; 
class final ViewObject 
{ 
    private String something; 

    public ViewObject(final String something) 
    { 
     this.something = something; 
    } 

    private String getSomething() 
    { 
     return something; 
    } 
} 

interface Business 
{ 
    Object doBusinessStuff(... HttpServletRequest and other stuff...); 
} 

package some.model.package; 
class final BusinessObject 
implements Business 
{ 
    ... business stuff ... 

    private String determineSomethingValue() 
    { 
     String returnValue; 
     returnValue = ... determine the value of something ... 
     return returnValue; 
    } 

    private Object getViewObject() 
    { 
     ViewObject returnValue; 
     String somethingValue; 

     somethingValue = determineSomethingValue(); 

     returnValue = new ViewObject(somethingValue); 

     return returnValue; 
    } 

    Object doBusinessStuff(... HttpServletRequest and other stuff...) 
    { 
     ... do stuff based on inputs ... 
     return getViewObject(); 
    } 

} 

package some.control.package; 
class final ActionObject 
{ 
    public somehting processHttpRequest(HttpRequest request, ...other parameters...) 
    { 
     Business businessObject = ... get the business object from somewhere ... 
     Object viewObject; 

     viewObject = businessObject.doBusinessStuff(); 

     request.setAttribute("view object name", viewObject); 
    } 
} 

 
+0

在這種情況下,我再次暴露我的業務組件,以行動layer.It可能當完成一項任務,我有打電話給不同的業務服務,並在這種情況下,我不得不在Action層中公開所有這些業務服務 – 2010-10-27 16:58:26