4

我正在创建一个 MVC 应用程序框架,仅使用我自己创建的库和组件(主要是一种学习经验),但我不太确定如何将每种库彼此分开。

我们将我的应用程序称为 Cat。

假设我正在创建一个名为 Dog 的库,它有点像 Zend,并且充满了执行不同任务的不同组件(数据库类、DAL、路由器,用于确定从给定 URL 中选择哪些控制器等),并将位于 root/library/ 目录中。

我还将创建一个特定于应用程序的应用程序库(可能包含诸如 FrontController 或 Application 之类的类,以帮助启动和配置应用程序)。这将位于 root/app/library/

我想在这个应用程序和其他应用程序上使用 Dog 库,并且希望它独立于 Cat,因此它可以用于许多其他应用程序。

在我的 Cat 应用程序中,假设我创建了一个新的数据库对象。我应该写:

$database = new Dog_Database();

或者拥有一个纯粹扩展 Dog_Database 类的 Cat_Database 类会更好吗?这意味着我可以稍后告诉 Cat_Database 扩展 Ferret_Database 如果需要...

我想主要的问题是,我的应用程序应该直接从共享库调用东西,还是应该调用特定于应用程序的库类,如果需要,这些库类又从共享库扩展?

4

1 回答 1

1

我想你在某种程度上回答了你自己的问题。你说你想让狗独立于猫。这意味着,对我来说,在两者之间使用大量的依赖注入,而不是大量的继承或直接调用。如果您想在没有框架的其他地方重用应用程序库,则不能让您的应用程序库从框架扩展类。

很难为这样一个广泛的问题提供详细的建议。不过,也许其中一些概念会对您有所帮助。

依赖注入

对接口进行编程

于 2010-06-19T10:16:54.553 回答