我正在分离类似于 MVC(模型、视图和控制器)的代码。
假设我有两个视图类,一个在概念上是一个页面(包含许多项目),另一个只是一个小部件(如最近新闻列表)。
以下是我看到的方法:
控制器实例化页面和小部件类,然后将小部件对象传递到页面中。如果页面有很多小部件,我必须弄清楚如何在不混淆的情况下将它们全部传递进去。
class PageController { function foo() { Widget widget1 = new Widget(); Widget widget2 = new Widget(); Page page = new Page(widget1, widget2); } } class Page { function Page(Widget widget1, Widget widget2) { //do something with the widgets } }
该页面实例化了小部件类。但是现在页面类引用了各种视图,而不是能够将视图放置在任何位置,只要它具有适当的接口。
class PageController { function foo() { Page page = new Page(); } } class Page { function Page() { Widget widget1 = new Widget(); Widget widget2 = new Widget(); //do something with the widgets } }
还有什么?
你有什么建议,为什么?
谢谢你。