【发布时间】:2015-04-03 09:55:27
【问题描述】:
基本上我正在尝试制作一个用于处理文件和目录的库。
我们的想法是为FileFinding、FileReading、FileWriting 等设置单独的类。
我正在尝试搜索是否有任何设计模式可以实现类似:
只有一次课可以说
<?php namespace vendor/FileHandler;
class FileHandler {}
现在在图书馆里我有特定的类可以说
<?php namespace vendor/FileHandler;
class FileFinder
{
/**
* Find files by their types
*
* @param string $path path to find files in.
* @param mixed $type string or array of file type/types (extensions).
* @return array array of file names.
*/
public function findFilesByType($path, $type)
{
// do logic here.
return $files;
}
}
现在我希望我的图书馆用户使用主类FileHandler::findFilesByType(); 调用FileFinder::findFilesByType()
请注意:FileFinder::findFilesByType() 不是静态方法,但我希望将其用作class FileHanlder 的静态方法
更新: 我上面问的问题似乎类似于 Laravel 的 Facade 模式。但他们的实施超出了我的想象。即使我不确定 Facade 模式是否会这样做。
【问题讨论】:
-
@SagarNaliyapara 你的链接没有回答我的问题。
-
FileFinder 应该依赖于 FileHandler,但是静态调用是不可能的。所以另一种方法是使用 FileFinder 扩展抽象 FileHandler。然后你可以调用FileHandler的方法,用户不能直接使用抽象类......但我不确定这是一个好习惯......
-
去掉了OOP标签,因为你想做的与OOP相反。
标签: php algorithm design-patterns static