IImage--factory
<?php /* 实例4 */ /* 使用工厂类解析图像工作 */ interface IImage {function getWidth();function getHeight();function getData(); } class Image_PNG implements IImage {protected $_width, $height, $_data;public function __construct($file) {$this->_file = $file;$this->_parse();}private function _parse() {//完成PNG格式的解析工作//并填充$_width, $_height, $_data$this->_data = getimagesize($this->_file);list($this->_width, $this->_height) = $this->_data;}public function getWidth() {return $this->_width;}public function getHeight() {return $this->_height;}public function getData() {return $this->_data;} } class Image_JPGE implements IImage {protected $_width, $_height, $_data;public function __construct($file) {$this->_file = $file;$this->_parse();}private function _parse() {//完成JPGE格式的解析工作//并填充$_width, $_height, $_data//$this->_width = imagesx($this->_file);//$this->_height = imagesx($this->_file);$this->_data = getimagesize($this->_file);list($this->_width, $this->_height) = $this->_data;}public function getWidth(){return $this->_width;}public function getHeight(){return $this->_height;}public function getData() {return $this->_data;} } class ImageFactory {public static function factory($file) {$filename = pathinfo($file);switch(strtolower($filename['extension'])){case 'jpg':$return = new Image_JPEG($file);break;case 'png':$return = new Image_PNG($file);break;default:echo '图片类型不正确';break;}if($return instanceof IImage) {return $return ;} else {echo '出错了';exit();}}} $image = ImageFactory::factory('path/my.png'); var_dump($image->getWidth()); echo '<br>'; print_r($image->getheight()); echo '<br>'; print_r($image->getData());
转载于:https://www.cnblogs.com/yhdsir/p/4649230.html
IImage--factory相关推荐
- 使用JPA进行update操作时,报org.springframework.beans.factory.BeanCreationException: Error creating bean with
使用JPA进行update操作时,报org.springframework.beans.factory.BeanCreationException: Error creating bean with ...
- 设计模式之简单工厂模式(Simply Factory)摘录
从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一.简单工厂模式是由一个工厂对象决定创建出哪一种 ...
- 设计模式之工厂方法模式(Factory Method)摘录
23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式包括:1.FactoryMethod(工厂方法模式):2.Abstract Factory(抽象工厂模式):3.Sin ...
- 设计模式之抽象工厂模式(Abstract Factory)摘录
面向对象系统的分析和设计实际上追求的就是两点:高内聚(Cohesion)和低耦合(Coupling). 23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式包括:1.Fa ...
- 设计模式(2)工厂方法模式(Factory Method)
设计模式(0)简单工厂模式 设计模式(1)单例模式(Singleton) 源码地址 0 工厂方法模式简介 0.0 工厂方法模式定义 工厂方法模式是在简单工厂模式基础上,为解决更复杂的对象创建问题而衍生 ...
- Effective Java - Item 1: Consider static factory methods instead of constructors
考虑使用静态工厂方法来替代构造方法, 这样的做的好处有四点. 1. 更好的表意 有的构造方法实际上有特殊的含义, 使用静态工厂方法能更好的表达出他的意思. 例如 BigInteger(int, int ...
- 工厂模式(Factory)(转)
先来明确一个问题,那就是有的时候,实例化这个活动不应该总是公开的进行, 也就是不要公开的使用 new 操作符,因为,这样容易造成耦合问题. 我们不应该针对实现编程,但是当我们在使用 new 的时候,便 ...
- 报错 org.springframework.beans.factory.BeanCreationException
2019独角兽企业重金招聘Python工程师标准>>> 一.问题背景: spring mvc eclipse启动报错:org.springframework.beans.factor ...
- 设计模式之笔记--抽象工厂模式(Abstract Factory)
抽象工厂模式(Abstract Factory) 定义 抽象工厂模式(Abstract Factory),提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类. 类图 描述 多个抽象产品 ...
- 《转》java设计模式--工厂方法模式(Factory Method)
本文转自:http://www.cnblogs.com/archimedes/p/java-factory-method-pattern.html 工厂方法模式(别名:虚拟构造) 定义一个用于创建对象 ...
最新文章
- Oracle归档已满的处理办法
- STM32高级开发(12)-在GCC中使用printf打印串口数据
- 数据中心基础运维人员的职业规划
- warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失...
- 移动web开发都会遇到的坑(会持续更新)
- Redis常用命令之操作Hash类型
- 微信小程序把玩(三十二)Image API
- MATLAB判断奇偶数
- VS2005-此计算机上已安装了试用版。必须先卸载以前安装的试用版后才能安装另一个试用版
- python定时重新初始化类_如何重新初始化类对象
- Navicat用法入门
- NetScaler Active-Active模式
- 反驳《SEO的几大罪行》
- 新浪博客中特殊字符不显示的问题
- 分享一个便宜又好用的代理ip
- We‘re sorry but XXX doesn‘t work properly without JavaScript enabled.
- Unity 进阶 之 实现简单的音频可视化封装(包括音频和麦克风)
- 有趣的Python:Python控制键盘鼠标
- 蒙德里安森林算法_DP没入门就入土
- 我国劳动法中关于高校应届毕业生就业协议及合同的一切条款
热门文章
- keepalive+nginx实现负载均衡高可用_高可用、负载均衡 集群部署方案:Keepalived + Nginx + Tomcat...
- oracle游标缓存,【oracle】游标——数据的缓存区
- python字典统计排序 统计各省份大学数量_1641统计字典排序元音字符串的数量(递归,递归),数目,递推...
- Web Worker 你知道吗?
- java虚拟机缩写为_(01-03)Java虚拟机缩写为。
- java lazy_Java AtomicLong lazySet()用法及代码示例
- 说一下你对多态的理解?_如何去理解java中的多态?从jvm角度分析也许让你更清晰...
- Linux系统关机重启,登录root用户,图形界面和字符界面,创建用户,删除用户,查看虚拟控制台用户,切换虚拟控制台
- 20211109:DC综合的一些简单概念理解记录
- 20201008:力扣209周周赛题解(下)