当前位置: 首页 > news >正文

德清网站建设中心nba最新交易动态

德清网站建设中心,nba最新交易动态,网站制作怎么做让点击高,厦门seo关键词优化代运营设计模式 抽象工厂模式单例模式要实现一个单例,需要关注的点有下面几个: 抽象工厂模式 PHP工厂模式是一种可扩展、可维护和可重复使用的方法,旨在提供通用接口,用于创建对象。工厂模式的主要组成部分包括抽象工厂、具体工厂、抽象产品和具体产…

设计模式

  • 抽象工厂模式
  • 单例模式
    • 要实现一个单例,需要关注的点有下面几个:

抽象工厂模式

PHP工厂模式是一种可扩展、可维护和可重复使用的方法,旨在提供通用接口,用于创建对象。工厂模式的主要组成部分包括抽象工厂、具体工厂、抽象产品和具体产品。通过使用工厂模式,可以提高代码复用率和可扩展性,并且可以减少代码耦合度和客户端代码的负担。然而,工厂模式并非适用于所有情况,在使用工厂模式时需要注意局限性和代码复杂性。

示例:

抽象工厂

<?php
namespace App\Design\v1\Msg;/*** @Description 生成消息类的工厂* @Author guo* @Date 2023/10/8 9:38**/
interface MsgFactory
{public function createMsg(): MsgInterFace;
}

抽象对象

<?php
namespace App\Design\v1\Msg;/*** @Description 定义消息需实现的接口* @Author guo* @Date 2023/10/8 9:37**///定义一个消息发送接口
interface MsgInterFace
{public function send($data);
}

具体工厂

<?php
namespace App\Design\v1\Msg;/*** @Description  实现mqtt推送消息的工厂* @Author guo* @Date 2023/10/8 10:55**/
class MqttFactory implements MsgFactory
{public function createMsg(): MsgInterFace{return new MqttMsg();}
}
<?php
namespace App\Design\v1\Msg;/*** @Description  实现email推送消息的工厂* @Author guo* @Date 2023/10/8 10:55**/
class EmailFactory implements MsgFactory
{public function createMsg(): MsgInterFace{return new EmailMsg();}
}

具体对象

<?php
namespace App\Design\v1\Msg;use App\Models\Base\v1\Msg\Msg;/*** @Description* @Author guo* @Date 2023/10/8 10:58**/
class MqttMsg implements MsgInterFace
{public function send($data){//具体实现$msg = new Msg();$msg->sendMsg($data);}
}
<?php
namespace App\Design\v1\Msg;use App\Models\Base\v1\Msg\Msg;/*** @Description* @Author guo* @Date 2023/10/8 10:58**/
class EmailMsg implements MsgInterFace
{public function send($data){//具体实现}
}

单例模式

单例设计模式(Singleton Design Pattern)的意思是:一个类只允许创建一个对象(或者实例),那这个类就是一个单例类,这种设计模式就叫作单例模式。

要实现一个单例,需要关注的点有下面几个:

  • 构造函数需要是 private 访问权限的,这样才能避免外部通过 new 创建实例;
  • 考虑对象创建时的线程安全问题;
  • 考虑是否支持延迟加载;
  • 考虑 getInstance() 性能是否高(是否加锁)。

单例模式又分为饿汉式单例模式和懒汉式单例模式:

  • 饿汉式单例模式:在类加载的时候,instance 静态实例就已经创建并初始化好了,所以,instance 实例的创建过程是线程安全的。不过,这样的实现方式不支持延迟加载实例。采用饿汉式实现方式,将耗时的初始化操作,提前到程序启动的时候完成,这样就能避免在程序运行的时候,再去初始化导致的性能问题。
  • 懒汉式单例模式:相对于饿汉式的优势是支持延迟加载。这种实现方式会导致频繁加锁、释放锁,以及并发度低等问题,频繁的调用会产生性能瓶颈。

实例

class ObjectA {private static $instance = null;public static function getInstance() {if (self::$instance === null) {self::$instance = new self();}return self::$instance;}//私有化构造函数private function __construct() {}//禁止克隆private function __clone() {}
}$objA1 = ObjectA::getInstance();
$objA2 = ObjectA::getInstance();
var_dump($objA1 === $objA2); //bool(true)$objA3 = clone $objA1; //此处报错:Fatal error: Uncaught Error: Call to private ObjectC::__clone() from context ''
var_dump($objA1 === $objA3); //程序不会执行到这里
http://www.yidumall.com/news/80734.html

相关文章:

  • 聊城seo网站运营优化培训
  • 福田外贸网站建设餐饮营销案例100例
  • 南京网站设计个人seo性能优化
  • 溧阳城乡建设局网站腾讯企业qq官网
  • 成都网站建设四川冠辰西安百度竞价开户
  • 哪些网站是做设计的自己开发网站
  • 西安哪有建网站的友链互换平台推荐
  • 什么是网络营销?与电商营销有什么区别?seo优化工具软件
  • dw网站开发与设计实训总结百度人工客服24小时
  • 做网站的域名是做什么用的天津提升专业关键词排名
  • wordpress连接网盘插件关键词优化技巧有哪些
  • 如何在网站做旅游产品网站怎么做
  • 代做论文网站有域名后如何建网站
  • 企业微信公众号合肥百度推广优化排名
  • 网络搭建drc网站优化公司怎么选
  • 做网站学什么代码seo中文含义
  • 新手如何建立自己网站广告软文范例200字
  • 企业网站建设国内外差异游戏推广公司
  • wordpress下拉菜单的阴影怎么改人员优化方案怎么写
  • 铜陵58同城做网站如何网络推广自己的产品
  • 长沙网站建设公司哪家好seo算法优化
  • 怎么把其他网站视频放到自己网站app软件开发
  • 国外域名网站推荐如何推广网页
  • 企业可以做哪些网站有哪些内容seo优化课程
  • 罗湖装修公司网站建设重庆森林粤语完整版在线观看免费
  • 凡科代理平台泉州百度seo
  • 微站小程序国内免费建站平台
  • 有哪些网站做美食的图片很精致百度竞价关键词出价技巧
  • 怎么做网站建设的ppt看网站搜什么关键词
  • 网站风格对比信息表网页设计自学要多久