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

建企业网站建设注意问题室内设计工作室排名

建企业网站建设注意问题,室内设计工作室排名,手机做网站价格,专业做足球体彩网站1 单例模式简单介绍 单例模式是一种经常使用的软件设计模式。在它的核心结构中仅仅包括一个被称为单例类的特殊类。通过单例模式能够保证系统中一个类仅仅有一个实例并且该实例易于外界訪问。从而方便对实例个数的控制并节约系统资源。假设希望在系统中某个类的对象仅仅能存… 1 单例模式简单介绍     单例模式是一种经常使用的软件设计模式。在它的核心结构中仅仅包括一个被称为单例类的特殊类。通过单例模式能够保证系统中一个类仅仅有一个实例并且该实例易于外界訪问。从而方便对实例个数的控制并节约系统资源。假设希望在系统中某个类的对象仅仅能存在一个。单例模式是最好的解决方式。2 模式核心思想     1某个类仅仅能有一个实例     2它必须自行创建这个实例    3它必须自行向整个系统提供这个实例。 3 模式架构图 4 项目应用 4.1 需求说明     CleverCode在实际的PHP项目中应用单例模式最多的就是涉及到网络连接的。比方Memcache和Redis连接一般的需求通常Redis都仅仅有一台server所以用单例模式将连接封装到getInstance()这样做的优点是不用每次都去调用connect()方法降低网络连接开销。PHP都是单线程同步运行的所以整个程序仅仅用实例化一个Redis对象就可以。来之《CleverCode的项目》4.2 需求分析     依据4.1能够分析出使用单例模式比較适合php网络连接的操作。如Mysql。MemcacheRedis。Gearman等都能够尝试单例模式。当然Mysql可能涉及到连接池。仅仅须要将单例变成一个数组单例就可以。即$_instance null变成$_instance array()$_instance[con1] new Self(conn1);$_instance[con2] new Self(conn2);4.3 程序源代码下载 http://download.csdn.net/detail/clevercode/87839894.4 程序说明 须要提前将Memcache与Redis增加到php扩展中。 1)单例模式设计Memcache操作类(MemcacheOperate.php) ?php/*** MemcacheOperate.php** 单例模式设计Memcache操作类** Copyright (c) 2015 http://blog.csdn.net/CleverCode** modification history:* --------------------* 2015/6/8, by CleverCode, Create**/ class MemcacheOperate extends Memcache{// 实例protected static $_instance null;/*** Singleton instance获取自己的实例** return MemcacheOperate*/public static function getInstance(){if (null self::$_instance) {self::$_instance new self();$host $_SERVER[MEMCACHE_HOST];$port $_SERVER[MEMCACHE_PORT];self::$_instance-addServer($host, $port);}return self::$_instance;} } 2)单例模式设计Redis操作类(RedisOperate.php) ?php /** * RedisOperate.php * * 单例模式设计Redis操作类 * * Copyright (c) 2015 http://blog.csdn.net/CleverCode * * modification history: * -------------------- * 2015/6/8, by CleverCode, Create * */ class RedisOperate extends Redis{ // 实例 protected static $_instance null; /** * Singleton instance获取自己的实例 * * return RedisOperate */ public static function getInstance(){ if (null self::$_instance) { self::$_instance new self(); $host $_SERVER[REDIS_HOST]; $port $_SERVER[REDIS_PORT]; self::$_instance-connect($host, $port); } return self::$_instance; } } 3)client代码(singletonPattern.php)?php /** * singletonPattern.php * * 单例模式 * * Copyright (c) 2015 http://blog.csdn.net/CleverCode * * modification history: * -------------------- * 2015/6/8, by CleverCode, Create * */ // 载入Memcache include_once (MemcacheOperate.php); // 载入Redis include_once (RedisOperate.php); /* * client类 * 让client和业务逻辑尽可能的分离减少client和业务逻辑算法的耦合。 * 使业务逻辑的算法更具有可移植性 */ class Client{ /** * 初始化配置文件 * * return null */ public static function initConfig(){ // Memcache 主机 $_SERVER[MEMCACHE_HOST] 192.168.6.201; // Memcache port $_SERVER[MEMCACHE_PORT] 11211; // Redis 主机 $_SERVER[REDIS_HOST] 192.168.6.201; // Redis port $_SERVER[REDIS_PORT] 6379; } /** * 主函数 * * return null */ public function main(){ // 初始化配置 self::initConfig(); // Memcache key1 MemcacheOperate::getInstance()-set(key1, Memcache CleverCode1, 0, 100); echo MemcacheOperate::getInstance()-get(key1); echo \r\n---\r\n; // Memcache key2 MemcacheOperate::getInstance()-set(key2, Memcache CleverCode2, 0, 100); echo MemcacheOperate::getInstance()-get(key2); echo \r\n---\r\n; // Redis key3 RedisOperate::getInstance()-set(key3, Redis CleverCode3); echo RedisOperate::getInstance()-get(key3); echo \r\n---\r\n; // Redis key4 RedisOperate::getInstance()-set(key4, Redis CleverCode4); echo RedisOperate::getInstance()-get(key4); echo \r\n---\r\n; } } /** * 程序入口 */ function start(){ $client new Client(); $client-main(); } start(); ?4.5 程序执行结果展示 5 总结 5.1 长处 1实例控制 单例模式会阻止其它对象实例化其自己的单例对象的副本从而确保全部对象都訪问唯一实例。 2灵活性 由于类控制了实例化过程所以类能够灵活更改实例化过程。5.2 缺点 1开销 尽管数量非常少但假设每次对象请求引用时都要检查是否存在类的实例将仍然须要一些开销。能够通过使用静态初始化解决此问题。 2可能的开发混淆 使用单例对象尤其在类库中定义的对象时开发者必须记住自己不能使用newkeyword实例化对象。由于可能无法訪问库源码。因此应用程序开发者可能会意外发现自己无法直接实例化此类。 3对象生存期 不能解决删除单个对象的问题。在提供内存管理的语言中比如基于.NET Framework的语言仅仅有单例类可以导致实例被取消分配由于它包括对该实例的私有引用。在某些语言中如 C其它类可以删除对象实例但这样会导致单例类中出现悬浮引用。 版权声明 1原创作品。出自CleverCode的博客严禁转载否则追究版权法律责任。 2原创地址http://blog.csdn.net/clevercode/article/details/46410055。 3设计模式之PHP项目应用23种设计模式文件夹http://blog.csdn.net/clevercode/article/details/45741843文件夹持续更新。关注请收藏。 4博客专栏地址(设计模式之PHP项目应用)http://blog.csdn.net/column/details/phpusedesignpattern.html博客持续添加。关注请收藏。 5欢迎大家关注CleverCode博客很多其它的精彩内容http://blog.csdn.net/CleverCode。 6欢迎大家关注CleverCode的微博http://weibo.com/CleverCode。 转载于:https://www.cnblogs.com/bhlsheji/p/5260458.html
http://www.sadfv.cn/news/208145/

相关文章:

  • 用word可以做网站吗怎么弄一个公司网站
  • 网站建设 管理规范网架公司名字
  • 网站建设阿里巴巴怎么开发属于自己的app软件
  • 电子商务网站建设与管理感想和收获wordpress中文企业模板下载
  • 网站建设炎陵天津黑臭水体工程中标
  • 对网站的界面设计分析移动互联网的终点和归宿是什么
  • 企业网站建设与优化科技网站小编
  • 牡丹江建设工程信息网站中国行业客户资源网
  • 请谁做网站比较放心孝感网站开发的公司电话
  • 网站屏蔽省份做推广网站有什么
  • 百度招聘 网站开发龙岩网络图书
  • 常宁网站建设常宁网站建设wordpress前台自动登录
  • 莱芜二中网站怎么才能百度到自己的网站
  • 网站运营者是做啥工作的seo推广方法有哪些
  • 企业网站建设毕业设计论文织梦网站怎么做301
  • 天津市住房与城乡建设部网站成都网站设计建设推荐
  • 公司网站建设管理意见哪家网站建设做的好
  • 攻略网站的建设发卡平台网站建设
  • 灌南县城乡建设局网站恒辉建设集团网站
  • 浙江网站建设服务网址管理系统
  • 做网站什么软件在线设计海报网站
  • 怎样创建网站收益小米路由器3 做网站
  • 站多多 福州网站建设国内出名网站建设设计公司
  • 吴江企业建设网站在线做编程题的网站
  • 网站维护预算wordpress 运行效率
  • 卫浴洁具网站模板wordpress term group
  • 怎么看一个网站好坏打码兔怎么和网站做接口
  • 湖北企业商城网站建设高端网站建设设计公司有哪些
  • 网站及微站建设合同验收做暖暖欧美网站
  • 网站开发项目的里程碑建筑工程技术培训