Sea*_*lsh 5 oop coldfusion inheritance
我正在开发一个应用程序,用于将用户上传的图像/文档的数据库和目录从我们的生产服务器传输到开发服务器.该应用程序是用Coldfusion编写的,但我不认为该语言与这个问题相关 - 它更多的是结构/架构问题,而不是语言特有的问题.
我将为我的示例编写伪代码,所以请不要选择语法.
当我看到类继承演示时,它通常很简单class Student extends Person() {}
.显然,学生是一个更专业的人,所以这是有道理的.
在我的应用程序中,我有一个类Site()
,其中包含相关信息,如DSN,文件上载目录等.我在一个类中执行我的SQL导出,我的文件上载导出在另一个类中,这两个类都是从站点类中调用的(伪代码):
class Site {
public function exportSql() {
sqlExport = new sqlExport(this.dsn);
sqlExport.createDumpAndZipItAndStuff();
}
public function exportUploads() {
uploadsExport = new uploadsExport(this.uploadDirectory);
uploadsExport.copyAndZipFilesAndStuff();
}
}
Run Code Online (Sandbox Code Playgroud)
除了控制从应用程序前端请求的流量流之外,Site类不会执行任何操作,其他所有内容都将传递到其中一个导出类.
这对我来说很好,但我想正确地构建它.现在,我必须将Site的属性传递给导出类的构造函数,然后使用这些参数设置导出类的属性.这会导致大量重复.
让我的导出类继承Site类以便我可以直接访问属性是否合适?导出类不是更专业的站点,就像我之前给出的Person/Student示例一样.相反,他们只是为Site类执行繁重的工作.
如果这不是适合继承的情况,我应该如何构建应用程序?正如我之前所说,我现在正在做的方式有效,但我想借此机会更多地了解设计模式,并以有意义的方式编写代码.
归档时间: |
|
查看次数: |
134 次 |
最近记录: |