- <?php
- interface IImage{
- function getHeight();
- function getWidth();
- function getData();
- }
- class Image_PNG implements IImage{
- private $_width,$_height,$_data;
- public function __construct($file){
- $this->_file=$file;
- $this->_parse();
- }
- private function _parse(){
- //完成PNG格式的解析工作
- //并填充$_width、$_height和$_data
- }
- public function getWidth(){
- return $this->_width;
- }
- public function getHeight(){
- return $this->_height;
- }
- public function getData(){
- return $this->_data;
- }
- }
- class Image_JPEG implements IImage{
- private $_width ,$_height,$_data;
- public function __construct($file){
- $this->_file=$file;
- $this->_parse();
- }
- private function _parse(){
- }
- 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){
- $pathParts=pathinfo($file);
- switch(strtolower($pathParts['extension'])){
- case 'jpg';
- $ret=new Image_JPEG($file);
- break;
- case 'png';
- $ret=new Image_PNG($file);
- break;
- default;
- }
- if($ret instanceof IImage){
- return $ret;
- }
- else{
- }
- }
- }
- $image=ImageFactory::factory('/path/to/b/bei.jpg');
- echo $image->getWidth();
- ?>
- //该片段来自于http://www.codesnippet.cn/detail/281020136701.html
来源: http://www.codesnippet.cn/detail/281020136701.html