我有一个比较原始的框架,我一直在大多数项目中使用它,但是我想到了一个普遍的设计问题,我还没有解决。对于给定的应用程序,我应该将特定于应用程序的类结构与框架的结构分离,还是在框架上构建不是那么糟糕的事情?
例如,假设我有一个基本控制器类的框架,并为我的应用程序的某个部分扩展了它。哪种安排最合理,为什么?
A类结构: - 直观,调试时易于找到源文件。 - 文件命名/目录结构反映类继承关系。
Framework_Control "Framework\Control.php" - Framework_Control_Index "Framework\Control\Index.php" - Framework_Control_Home "Framework\Control\Home.php" - Framework_Control_Contact "Framework\Control\Contact.php" - Framework_Control_About "Framework\Control\About.php"
B类结构: - 使框架模块化且易于替换/更新。 - 在目录结构上增加了一些复杂性,目录/文件命名不再始终遵循类继承关系。
Framework_Control "Framework\Control.php" - Application_Control_Index "Application\Control\Index.php" - Application_Control_Home "Application\Control\Home.php" - Application_Control_Contact "Application\Control\Contact.php" - Application_Control_About "Application\Control\About.php"
我知道总体上这将取决于个人喜好,但在决定哪种方式要走之前,我想确保权衡所有利弊。实际上,这归结为类命名和目录结构,因为实际层次结构在任一情况下都将保持不变。
例如,假设我有一个基本控制器类的框架,并为我的应用程序的某个部分扩展了它。哪种安排最合理,为什么?
A类结构: - 直观,调试时易于找到源文件。 - 文件命名/目录结构反映类继承关系。
Framework_Control "Framework\Control.php" - Framework_Control_Index "Framework\Control\Index.php" - Framework_Control_Home "Framework\Control\Home.php" - Framework_Control_Contact "Framework\Control\Contact.php" - Framework_Control_About "Framework\Control\About.php"
B类结构: - 使框架模块化且易于替换/更新。 - 在目录结构上增加了一些复杂性,目录/文件命名不再始终遵循类继承关系。
Framework_Control "Framework\Control.php" - Application_Control_Index "Application\Control\Index.php" - Application_Control_Home "Application\Control\Home.php" - Application_Control_Contact "Application\Control\Contact.php" - Application_Control_About "Application\Control\About.php"
我知道总体上这将取决于个人喜好,但在决定哪种方式要走之前,我想确保权衡所有利弊。实际上,这归结为类命名和目录结构,因为实际层次结构在任一情况下都将保持不变。