25种php设计模式,你全都知道吗?下面用代码介绍享元模式(flyweight模式)<?php

/**

* 享元模式

*

* 运用享元技术有效的支持大量细粒度的对象

*/

class CD {

private $_title = null;

private $_artist = null;

public function setTitle($title) {

$this->_title = $title;

}

public function getTitle() {

return $this->_title;

}

public function setArtist($artist) {

$this->_artist = $artist;

}

public function getArtist($artist) {

return $this->_artist;

}

}

class Artist {

private $_name;

public function __construct($name) {

echo "construct " . $name . "
";

$this->_name = $name;

}

public function getName() {

return $this->_name;

}

}

class ArtistFactory {

private $_artists = array();

public function getArtist($name) {

if (isset($this->_artists[$name])) {

return $this->_artists[$name];

} else {

$objArtist = new Artist($name);

$this->_artists[$name] = $objArtist;

return $objArtist;

}

}

}

$objArtistFactory = new ArtistFactory();

$objCD1 = new CD();

$objCD1->setTitle("title1");

$objCD1->setArtist($objArtistFactory->getArtist('artist1'));

$objCD2 = new CD();

$objCD2->setTitle("title2");

$objCD2->setArtist($objArtistFactory->getArtist('artist2'));

$objCD3 = new CD();

$objCD3->setTitle("title3");

$objCD3->setArtist($objArtistFactory->getArtist('artist1'));

其他相关设计模式:

转载随意,但请附上文章地址:-)

php实现享元模式,php设计模式 flyweight (享元模式)相关推荐

  1. python 享元模式_python 设计模式之享元(Flyweight)模式

    #写在前面 这个设计模式理解起来很容易.百度百科上说的有点绕口. #享元模式的定义 运用共享技术来有効地支持大量细粒度对象的复用. 它通过共享已经存在的对橡大幅度减少需要创建的对象数量.避免大量相似类 ...

  2. C++设计模式-Flyweight享元模式

    Flyweight享元模式 作用:运用共享技术有效地支持大量细粒度的对象. 内部状态intrinsic和外部状态extrinsic: 1)Flyweight模式中,最重要的是将对象分解成intrins ...

  3. 创建型模式、结构型模式和行为型模式_设计模式之创建型模式

    设计模式GOF23(Group of Four) 设计模式可分为三种类型: 创建型模式:单例模式,工厂模式,抽象工厂模式,建造者模式,原型模式. 结构型模式:适配器模式,桥接模式,装饰模式,组合模式, ...

  4. python中的装饰器、装饰器模式_python 设计模式之装饰器模式 Decorator Pattern

    #写在前面 已经有一个礼拜多没写博客了,因为沉醉在了<妙味>这部小说里,里面讲的是一个厨师苏秒的故事.现实中大部分人不会有她的天分.我喜欢她的性格:总是想着去解决问题,好像从来没有怨天尤人 ...

  5. php工程模式,PHP设计模式(八):工厂模式

    Introduction 在PHP设计模式(七):设计模式分类中我们提到过创建设计模式(Creation patterns),创建设计模式专注于设计对象(Object)和实例(Instance)的创建 ...

  6. 组合模式_设计模式结构性:组合模式(CompositePattern)

    组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象.组合模式依据树形结构来组合对象,用来表示部分以及整体层次.这种类型的设计模式属于结构型模式, ...

  7. 抽象工厂模式_设计模式系列—抽象工厂模式

    前言 23种设计模式速记 单例(singleton)模式 工厂方法(factory method)模式 23种设计模式快速记忆的请看上面第一篇,前面说完了工厂方法模式,我们发现工厂方法模式存在一个严重 ...

  8. python抽象工厂模式_Python设计模式之抽象工厂模式

    Python设计模式之抽象工厂模式 这篇文章主要为大家详细介绍了Python设计模式之抽象工厂模式,感兴趣的小伙伴们可以参考一下 python面向对象编程入门,我们需要不断学习进步 "&qu ...

  9. php 组合模式,php设计模式(十三)透明组合模式

    组合模式用来解决整体和部分可以一致对待的问题: 比如说 文件夹 和其下的 文件: 可以复制文件也可以复制整个文件夹: 组合模式是将对象组合成树形结构以表示整体和部分的层次结构: 可以方便的增加节点: ...

最新文章

  1. linux中yum安装splunk,Yum源搭建
  2. Python算法和数据结构:在二叉树中找到和为sum的所有路径
  3. 将 Shiro 作为应用的权限基础 五:密码的加密/解密在Spring中的应用
  4. 如何自学Android--转
  5. Python-OpenCV 杂项(二)(三): 鼠标事件、 程序性能的检测和优化
  6. JavaFX官方教程(十三)之应用效果
  7. 服务器安装三节点RabbitMQ集群(3)
  8. Nginx反向代理:多域名跳转多台服务器(研发需求)
  9. 第一篇文献:谈大数据时代的云控制摄影测量 ——张祖勋院士
  10. 号外!号外!豪车出租啦!
  11. Java实现给PDF每页右上角添加图片水印
  12. 【前端之旅】HTML大总结
  13. 论文阅读笔记:Multi-Labeled Relation Extraction with Attentive Capsule Network(AAAI-2019)
  14. 简单几步学会java爬虫
  15. TongWeb7微服务适配方案
  16. 挣值管理计算公式学习
  17. 唯美网页烟花绽放动画js特效
  18. 韦东山所有课程详细目录介绍(最新)
  19. 打造低碳环保的XP系统
  20. #前端开发# 【一】 之Animate动画库的安装及详细用法

热门文章

  1. group_concat默认长度限制
  2. [HDU3336]Count the string(KMP+DP)
  3. CSS之div和span标签
  4. 解决canvas画图模糊的问题
  5. VMware vSAN紧盯虚拟化应用
  6. java中如何将非整数保留到小数点后指定的位数
  7. 软件定义闪存:加速闪存规模化应用
  8. 关于函数返回值的讨论与总结
  9. 【收藏】13个CSS3快速必备开发工具
  10. 介绍Cassandra中的压缩