常用的三种设计模式 PHP代码

  

// 工厂模式

interface Iuser
{
    public function getUserName();
}

class UserFactory
{
    static public function load($className)
    {
        return new strtolower($className);
    }

    static public function create($className)
    {
        return new strtolower($className);
    }
}

class User implements Iuser
{
    public function getUserName()
    {
        return ‘jack‘;
    }
}

UserFactory::create(‘User‘)->getUserName();

// 单例模式

class Singleton
{
    static public function getInstance()
    {
        static $obj = null;

        if($obj == null) {
            return new Singleton();
        }
        return $obj;
    }

    public function getUserName()
    {
        return ‘jack‘;
    }
}

Singleton::getInstance()->getUserName();

// 观察者模式

interface Observe
{
    public function getUserName();
}

class User
{
    private $servs = [];
    public function register($obj)
    {
        array_push($servs, $obj);
        return $this;
    }

    public function triggle()
    {
        if($this->servs) {
            foreach($this->servs as $key => $value) {
                $value->getUserName();
            }
        }
    }
}

Class MyUser extends User implements Observ
{
    public function getUserName()
    {
        return ‘jack‘;
    }
}

(new User())->register(new MyUser)->triggle();

原文地址:https://www.cnblogs.com/gpfeisoft/p/9275128.html

时间: 2024-07-29 04:37:27

常用的三种设计模式 PHP代码的相关文章

PHP常用的三种设计模式

本文为大家介绍常用的三种php设计模式:单例模式.工厂模式.观察者模式,有需要的朋友可以参考下. 一.首先来看,单例模式 所谓单例模式,就是确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例,即在应用程序中只会有这个类的一个实例存在.通常单例模式用在仅允许数据库访问对象的实例中,从而防止打开多个数据库连接,单例模式是一种常见的设计模式,在计算机系统中,线程池.缓存.日志对象.对话框.打印机.数据库操作.显卡的驱动程序常被设计成单例. 一个单例类应包括以下几点:和普通类不同,单例类不能

iOS开发中常用的几种设计模式

下面是iOS开发中比较常用的几种设计模式.详情如下所示: (一)代理模式 应用场景:当一个类的某些功能需要由别的类来实现,但是又不确定具体会是哪个类实现.优势:解耦合敏捷原则:开放-封闭原则实例:tableview的 数据源delegate,通过和protocol的配合,完成委托诉求.列表row个数delegate自定义的delegate (二)观察者模式应用场景:一般为model层对,controller和view进行的通知方式,不关心谁去接收,只负责发布信息.优势:解耦合敏捷原则:接口隔离原

关于W3Cschool定义的设计模式--常用的9种设计模式的介绍

一.设计模式 tip:每种设计模式,其实都是为了更高效的,更方便的解决在面对对象编程中所遇到的问题. 什么是设计模式: 是一套经过反复使用.多人知晓的.经过分类的.代码设计经验的总结 为什么使用设计模式: 为了代码的可重用性.让代码更容易被他人理解.保证代码的可靠性.设计模式使代码的编写真正的工程化:设计模式是软件工程的基石脉络,如同大厦的结构. 有哪些设计模式(来自W3Cschool,23种): 构造器模式,模块化模式,暴露模块模式,单例模式,中介者模式,原型模式,命令模式,外观模式,工厂模式

Android中常用的三种存储方法浅析

Android中常用的三种存储方法浅析 Android中数据存储有5种方式: [1]使用SharedPreferences存储数据 [2]文件存储数据 [3]SQLite数据库存储数据 [4]使用ContentProvider存储数据 [5]网络存储数据 在这里我只总结了三种我用到过的或即将可能用到的三种存储方法. 一.使用SharedPreferences存储数据 SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置信息比如窗口状态,它的本质是基

数据导入HBase最常用的三种方式及实践分析

数据导入HBase最常用的三种方式及实践分析         摘要:要使用Hadoop,需要将现有的各种类型的数据库或数据文件中的数据导入HBase.一般而言,有三种常见方式:使用HBase的API中的Put方法,使用HBase 的bulk load工具和使用定制的MapReduce Job方式.本文均有详细描述. [编者按]要使用Hadoop,数据合并至关重要,HBase应用甚广.一般而言,需要 针对不同情景模式将现有的各种类型的数据库或数据文件中的数据转入至HBase 中.常见方式为:使用H

JavaScript的简介以及常用的三种对话框

JavaScript中常用的三种对话框 alert().confirm().prompt()的区别和联系: 1.警告框alert() alert是警告框,只有一个按钮"确定"无返回值,警告框经常用于确保用户可以得到某些信息.当警告框出现后,用户需要点击确定按钮才能继续进行操作. 语法: <script type="text\javascript"> alert("文本"). </script> 2.确认框confirm()

JavaScript的介绍、常用的三种对话框

JavaScript中常用的三种对话框 alert().confirm().prompt()的区别和联系: 1.警告框alert() alert是警告框,只有一个按钮"确定"无返回值,警告框经常用于确保用户可以得到某些信息.当警告框出现后,用户需要点击确定按钮才能继续进行操作. 语法: <script type="text\javascript"> alert("文本"). </script> 2.确认框confirm()

每日一招:牛市选股最常用的三种方法

每日一招:牛市选股最常用的三种方法 字体: 大 小 换肤: 收藏 2015-05-04 11:00:06 选中了好股票就可以牟取暴利,选错了个股,牛市里面也要亏大钱,这就是新一轮大牛市的全新特点.选股已成为广大投资者炒股成败的关键点!最重要的是下一阶段什么方法是最适合的呢?下面我们就作一些分析. 目前各种选黑马的方法,大体上可分为有三种:1,以业绩为主要选股依据的方法.2,是以炒作题材为主要依据的选股方法.3,是以博弈.相反理论及跟庄方法为主要依据的选股方法. 第1种方法以业绩为选股的主要依据,

C语言中最常用的三种输入输出函数scanf()、printf()、getchar()和putchar()

本文给大家介绍C语言中最常用的三种输入输出函数scanf().printf().getchar()和putchar(). 一.scanf()函数格式化输入函数scanf()的功能是从键盘上输入数据,该输入数据按指定的输入格式被赋给相应的输入项.函数一般格式为:scanf("控制字符串",输入项列表):其中控制字符串规定数据的输入格式,必须用双引号括起,其内容是由格式说明和普通字符两部分组成.输入项列表则由一个或多个变量地址组成,当变量地址有多个时,各变量地址之间用逗号“,”分隔.sca