php实现享元模式,php设计模式 flyweight (享元模式)
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 (享元模式)相关推荐
- python 享元模式_python 设计模式之享元(Flyweight)模式
#写在前面 这个设计模式理解起来很容易.百度百科上说的有点绕口. #享元模式的定义 运用共享技术来有効地支持大量细粒度对象的复用. 它通过共享已经存在的对橡大幅度减少需要创建的对象数量.避免大量相似类 ...
- C++设计模式-Flyweight享元模式
Flyweight享元模式 作用:运用共享技术有效地支持大量细粒度的对象. 内部状态intrinsic和外部状态extrinsic: 1)Flyweight模式中,最重要的是将对象分解成intrins ...
- 创建型模式、结构型模式和行为型模式_设计模式之创建型模式
设计模式GOF23(Group of Four) 设计模式可分为三种类型: 创建型模式:单例模式,工厂模式,抽象工厂模式,建造者模式,原型模式. 结构型模式:适配器模式,桥接模式,装饰模式,组合模式, ...
- python中的装饰器、装饰器模式_python 设计模式之装饰器模式 Decorator Pattern
#写在前面 已经有一个礼拜多没写博客了,因为沉醉在了<妙味>这部小说里,里面讲的是一个厨师苏秒的故事.现实中大部分人不会有她的天分.我喜欢她的性格:总是想着去解决问题,好像从来没有怨天尤人 ...
- php工程模式,PHP设计模式(八):工厂模式
Introduction 在PHP设计模式(七):设计模式分类中我们提到过创建设计模式(Creation patterns),创建设计模式专注于设计对象(Object)和实例(Instance)的创建 ...
- 组合模式_设计模式结构性:组合模式(CompositePattern)
组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象.组合模式依据树形结构来组合对象,用来表示部分以及整体层次.这种类型的设计模式属于结构型模式, ...
- 抽象工厂模式_设计模式系列—抽象工厂模式
前言 23种设计模式速记 单例(singleton)模式 工厂方法(factory method)模式 23种设计模式快速记忆的请看上面第一篇,前面说完了工厂方法模式,我们发现工厂方法模式存在一个严重 ...
- python抽象工厂模式_Python设计模式之抽象工厂模式
Python设计模式之抽象工厂模式 这篇文章主要为大家详细介绍了Python设计模式之抽象工厂模式,感兴趣的小伙伴们可以参考一下 python面向对象编程入门,我们需要不断学习进步 "&qu ...
- php 组合模式,php设计模式(十三)透明组合模式
组合模式用来解决整体和部分可以一致对待的问题: 比如说 文件夹 和其下的 文件: 可以复制文件也可以复制整个文件夹: 组合模式是将对象组合成树形结构以表示整体和部分的层次结构: 可以方便的增加节点: ...
最新文章
- linux中yum安装splunk,Yum源搭建
- Python算法和数据结构:在二叉树中找到和为sum的所有路径
- 将 Shiro 作为应用的权限基础 五:密码的加密/解密在Spring中的应用
- 如何自学Android--转
- Python-OpenCV 杂项(二)(三): 鼠标事件、 程序性能的检测和优化
- JavaFX官方教程(十三)之应用效果
- 服务器安装三节点RabbitMQ集群(3)
- Nginx反向代理:多域名跳转多台服务器(研发需求)
- 第一篇文献:谈大数据时代的云控制摄影测量 ——张祖勋院士
- 号外!号外!豪车出租啦!
- Java实现给PDF每页右上角添加图片水印
- 【前端之旅】HTML大总结
- 论文阅读笔记:Multi-Labeled Relation Extraction with Attentive Capsule Network(AAAI-2019)
- 简单几步学会java爬虫
- TongWeb7微服务适配方案
- 挣值管理计算公式学习
- 唯美网页烟花绽放动画js特效
- 韦东山所有课程详细目录介绍(最新)
- 打造低碳环保的XP系统
- #前端开发# 【一】 之Animate动画库的安装及详细用法