PHP最常用的2种设计模式:工厂模式和单例模式_PHP教程
教程Tag:暂无Tag,欢迎添加,赚取U币!
推荐:PHP中++i 与 i++ 的区别1、++i 的用法(以 a=++i ,i=2 为例) 先将 i 值加 1 (也就是 i=i+1 ),然后赋给变量 a (也就是 a=i ), 则最终 a 值等于 3 , i 值等于 3 。 所以 a=++i 相当于 i=i+1 ,a=i 2、i++ 的用法(以 a=i++ ,i=2 为例) 先将 i 值赋给变量 a (也就是 a=i ),然后 i 值加 1 (也就
1.工厂模式
主要作用是降低耦合度。
用在真正开发中一般当做数据库选择类。
- abstract class Operation{
- abstract public function getValue($num1,$num2);
- public function getAttr(){
- return 1;
- }
- }
- class Add extends Operation{
- public function getValue($num1, $num2){
- return $num1+$num2;
- }
- }
- class Sub extends Operation{
- public function getValue($num1, $num2){
- return $num1-$num2;
- }
- }
- class Factory{
- public static function CreateObj($operation){
- switch ($operation){
- case '+': return new Add();
- case '-': return new Sub();
- }
- }
- }
- $Op=Factory::CreateObj('-');
- echo $Op->getValue(3, 6);
2单例模式
单例是因为一个就足够了,多了浪费。比如邮局里的电话簿只有一本,有需要的人拿来看,没有必要每个人要查的时候工作人员就拿一本出来,看完了再回收。
实际中用作数据库连接类和工厂模式一起使用,根据参数调用单例模式,可以提高资源使用效率。
- class Mysql{
- public static $conn;
- public static function getInstance(){
- if (!self::$conn){
- new self();
- return self::$conn;
- }else {
- return self::$conn;
- }
- }
- private function __construct(){
- self::$conn= "mysql_connect:";// mysql_connect('','','')
- }
- public function __clone()
- {
- trigger_error("Only one connection");
- }
- }
- echo Mysql::getInstance();
- echo Mysql::getInstance();
分享:php中判断文件空目录是否有读写权限Example #1 is_writable() 例子 代码如下 复制代码 $filename = 'test.txt'; if (is_writable($filename)) { echo 'The file is writable'; } else { echo 'The file is not writable'; } ? 上面的函数有一个问题就是filename 必需。规定要检查的文件 ,必须是文件啊,
相关PHP教程:
- 相关链接:
- 教程说明:
PHP教程-PHP最常用的2种设计模式:工厂模式和单例模式。