PHP最常用的设计模式
来源:互联网 发布:深入浅出node infoq 编辑:程序博客网 时间:2024/06/06 02:03
PHP最常用的设计模式
工厂模式
<?phpclass Automobile{ private $vehicleMake; private $vehicleModel; public function __construct($make, $model) { $this->vehicleMake = $make; $this->vehicleModel = $model; } public function getMakeAndModel() { return $this->vehicleMake . ' ' . $this->vehicleModel; }}class AutomobileFactory{ public static function create($make, $model) { return new Automobile($make, $model); }}// 用工厂的 create 方法创建 Automobile 对象$veyron = AutomobileFactory::create('Bugatti', 'Veyron');print_r($veyron->getMakeAndModel()); // outputs "Bugatti Veyron"
上面的代码用来一个工厂来创建 Automobile 对象。用这种方式创建对象有两个好处: 首先,如果你后续需要更改,重命名或替换 Automobile 类,你只需要更改工厂类中的代码,而不是在每一个用到 Automobile 类的地方修改; 其次,如果创建对象的过程很复杂,你也只需要在工厂类中写,而不是在每个创建实例的地方重复地写。
当然,用工厂模式并不总是必要(或者明智)。上面的示例代码很简单,在实践中,工厂类中会被加入一些不必要的复杂性。 如果你是在做一个很大很复杂的项目,使用工厂模式将会给你省去很多麻烦。
策略模式
Interface,首先三个不同的类使用一个接口
<?phpinterface OutputInterface{ public function load();}class SerializedArrayOutput implements OutputInterface{ public function load() { return serialize($arrayOfData); }}class JsonStringOutput implements OutputInterface{ public function load() { return json_encode($arrayOfData); }}class ArrayOutput implements OutputInterface{ public function load() { return $arrayOfData; }}
利用OutputInterface,提供了灵活性,上面三个类都可以作为参数
<?phpclass SomeClient{ private $output; public function setOutput(OutputInterface $outputType) { $this->output = $outputType; } public function loadOutput() { return $this->output->load(); }}
这个属性被设置为具体的实例(三个输出类中之一的实例),并且 loadOutput 方法被调用,那么它的 load 方法就会被调用,返回回序列化结果或 json 或数组。
<?php$client = new SomeClient();// Want an array?$client->setOutput(new ArrayOutput());$data = $client->loadOutput();// Want some JSON?$client->setOutput(new JsonStringOutput());$data = $client->loadOutput();
前端控制器模式
前端控制器模式就是给你的 web 应用程序设置单一的入口(比如 index.php),用来集中处理所有请求的机制。 它的职责是载入所有依赖,处理请求,并发送响应给浏览器。前端控制器模式对整个架构是有益的,因为它鼓励模块化代码,并给了你一个单入口,可以写一些每个请求都需要跑的代码(比如输入数据的过滤)
模型-视图-控制器(MVC)
模型-视图-控制器 (MVC) 模式还有和它相关的 HMVC、HVVM 让你根据逻辑对象的不同作用去解耦。 模型用来作为数据访问层,并以应用中通用的格式返回数据。 控制器处理请求,处理从模型层返回的数据,并载入视图,发送响应。 视图用来展示需要在响应中使用的模板(markup, xml 等等)。
原文链接:http://biyongyao.com/archives/198
- PHP最常用的设计模式
- 最常用的设计模式
- 最常用的设计模式
- 最常用的设计模式
- 最常用的设计模式 .
- 最常用的设计模式
- 最常用的设计模式
- 最常用的设计模式
- 最常用的设计模式
- 最常用的设计模式 .
- PHP常用的设计模式
- 最常用的12种设计模式
- 最常用的10种设计模式
- 最常用的设计模式(未完)
- 最常用的设计模式---概述
- 最常用的12种设计模式
- android中最常用的设计模式
- PHP 常用设计模式
- Jzoj3895 数字对
- Qt定时器的应用,实现时钟的状态
- Gym 101142G Gangsters in Central City【思维+Lca】
- 高级C语言教程-C语言函数setjmp()函数
- bzoj1731 [Usaco2005 dec]Layout 排队布局(差分约束+spfa)
- PHP最常用的设计模式
- Tensorflow实战Google-第三章-简单神经网络
- 【51nod】 1279
- NOIP专题训练——网络流 题解
- MyApplication框架或者变量的初始化
- < 笔记 > Python
- Hibernate的配置文件与测试
- UVA 1594 Ducci Sequence
- 素数个数