php基础---单例模式&&工厂模式

//PHP设计模式
//工厂模式:工厂类 用于创建对象

interface Dongwu
{
    function say();
}

class Mao implements Dongwu
{
    public function say()
    {
        echo "喵喵!我是一只小野猫!";
    }
}

//工厂类,用来创建猫类
class GongChang
{
    public static function GetObj($className)
    {
        return new $className();
    }
}

$mao = GongChang::GetObj("Mao");
$mao->say();
<?php
//PHP设计模式
//单例模式

class Mao
{
    private static $_getObj;//静态成员

    private function __construct(){}//构造函数前面加私有,该类不能被实例化

    public function say()
    {
        echo "喵喵";
    }

    //自己创建该类的实例
    public static function getObj()
    {
        if(self::$_getObj==null)//只赋值一次
        {
            self::$_getObj = new Mao();
        }
        return self::$_getObj;//返回猫类的实例
    }

}

$mao = Mao::getObj();
$mao->say();
时间: 2024-08-02 13:36:52

php基础---单例模式&&工厂模式的相关文章

单例模式工厂模式

单例模式 单例模式的目的就是为了控制特定的类只产生一个对象. 产生单例的步骤: 1.构造方法私有化(在构造方法前面加prevate static finall)为的是不让其他类创建该类的实例化对象. 2.在类中自己创建自己的实例化对象. 3.写一个方法,返回该实例化对象. 4.在该类中还可以写其他的方法. 具体的代码如下: public class Danli { // 构造方法私有化,让其他类调用不到 private Danli() { } // 在类中自己创建自己的实例化对象, privat

PHP 设计模式 单例模式 工厂模式 注册模式

1.工厂模式,工厂方法或者类生成对象,而不是在代码中直接new 2.单例模式,使某个类的对象仅允许创建一个 3.注册模式,全局共享和交换对象 项目文件目录 入口文件 index.php 1 <?php 2 /** 3 * Created by PhpStorm. 4 * Author: Administrator 5 * Date: 14-11-22 6 * Time: 下午3:42 7 */ 8 9 define('BASEDIR',__DIR__); 10 include BASEDIR.'

JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模)

什么是面向对象?面向对象是一种思想!(废话). 面向对象可以把程序中的关键模块都视为对象,而模块拥有属性及方法.这样我们如果把一些属性及方法封装起来,日后使用将非常方便,也可以避免繁琐重复的工作.接下来将为大家讲解在JS中面向对象的实现.   工厂模式 工厂模式是软件工程领域一种广为人知的设计模式,而由于在ECMAScript中无法创建类,因此用函数封装以特定接口创建对象.其实现方法非常简单,也就是在函数内创建一个对象,给对象赋予属性及方法再将对象返回即可. ? 1 2 3 4 5 6 7 8

25、【C++基础】工厂模式

C++的工厂模式分为三种:简单工厂模式.工厂模式和抽象工厂模式 简单工厂模式 简单工厂模式是工厂模式中最简单的一种,他可以用比较简单的方式隐藏创建对象的细节,一般只需要告诉工厂类所需要的类型,工厂类就会返回需要的产品类,但客户端看到的只是产品的抽象对象,无需关心到底是返回了哪个子类.客户端唯一需要知道的具体子类就是工厂子类.除了这点,基本是达到了依赖倒转原则的要求. 假如,我们不用工厂类,只用AbstractProduct和它的子类,那客户端每次使用不同的子类的时候都需要知道到底是用哪一个子类,

PHP基础设计模式——工厂模式

<?php//文件名:Factory namespace IMooc; class Factory { //工程模式 static function creatDatabase() { $db = new Database;//如果Database的各项参数发生了变化,只需要在这里修改,不用去修改所有new出来的对象. return $db; } } <?php //文件名:index.php define('a',__DIR__); include '/IMooc/Loader.php';

PHP 设计模式 笔记与总结(6)基础设计模式:工厂模式、单例模式和注册树模式

三种基础设计模式(所有面向对象设计模式中最常见的三种): ① 工厂模式:使用工厂方法或者类生成对象,而不是在代码中直接new 在 Common 目录下新建 Factory.php: <?php namespace Common; class Factory{ static function createDatabase(){ //$db = new \Common\Database; $db = new Database; return $db; } } index.php: <?php de

C#基础之简单工厂模式和单例模式

设计模式(Design pattern):指的是一种大多数人反复使用的代码设计经验. 作用:代码复用.易读性.保证代码可靠性. 一.简单工厂模式 用法:创建一个工厂类(命名习惯以Factiory结尾),一个静态的带参数(根据不同的参数返回不同的子类对象)的父类类型的方法. public class FunctionFactory { public static FatherClass Function(string str) { FatherClass fc = null; ... return

PHP面向对象-设计模式 单例模式 简单工厂模式 工厂方法模式

1.单例模式 单例模式是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例的特殊类.通过单例模式可以保证系统中一个类只有一个实例.即一个类只有一个对象实例. 要实现每一个类只有一个实例,就需要对实例化进行限制. 单例模式实现要点: ① 构造函数私有化,不允许使用new关键字创建对象  ② 对外提供获取对象的方法.在方法中判断对象是否为空,如果为空则创建对象并返回,如果不为空则直接返回  ③ 实例对象的属性以及获取对象的方法必须是静态的  ④ 之后,创建对象只能使用我们提供的静态方法. 

单例模式和工厂模式(百度文库)

模式中的单例模式分为:饿汉模式和懒汉模式. 顾名思义: 饿汉模式是对食物(Singleton)比较渴望的,所有一开始就new了一个来满足(食欲) 饿汉式: public class Singleton{   private static Singleton singleton = new Singleton ();   private Singleton (){}   public static  Singleton getInstance(){return singletion;}   } 饿