时间:2021-07-01 10:21:17 帮助过:6人阅读
下面代码为显示工厂类的一个示列。等式的服务器端包括两个部分:数据库和一组 PHP 页面,这些页面允许您添加反馈、请求反馈列表并获取与特定反馈相关的文章。
IUser 接口定义用户对象应执行什么操作:
- interface IUser
- { function getName();
- }
IUser 的实现称为 User:
- class User implements IUser
- { public function __construct( $id ) { }
- public function getName()
- { return "Jack";
- }
- }
UserFactory 工厂类则创建 IUser 对象:
- class UserFactory
- { public static function Create( $id )
- { return new User( $id );
- }
- }
测试代码会向工厂请求 User
对象,并输出 getName
方法的结果:
- $pr = UserFactory::Create( 1 );echo( $pr->getName()."\n" );
有一种工厂模式的变体使用工厂方法。类中的这些公共静态方法构造该类型的对象。如果创建此类型的对象非常重要,此方法非常有用。例如,假设您需要先创建对象,然后设置许多属性。此版本的工厂模式会将该进程封装在单个位置中,这样,不用复制复杂的初始化代码,也不必将复制好的代码在在代码库中到处粘贴。
- interface IUser //接口{ function getName();
- }
- class User implements IUser
- { public static function Load( $id ) //静态函数 { return new User( $id );
- } public static function Create( ) //静态函数 { return new User( null );
- } public function __construct( $id ) { }//构造函数
- public function getName()
- { return "Jack";
- }
- }
- $uo = User::Load( 1 );echo( $uo->getName()."\n" );
以上就是php中常见的工厂设计模式详解的详细内容,更多请关注Gxl网其它相关文章!