设计模式
乌托邦中小蜗牛
这个作者很懒,什么都没留下…
展开
-
设计模式总览
在《设计模式:可复用面向对象软件的基础》(Design Patterns: Elements of Reusable Object-Oriented Software) 这本书中,作者把设计模式分了三大类: 创建型模式(Creational patterns) 创建型模式是为了解决创建对象时候遇到的问题。因为基本的对象创建方式可能会导致设计上的问题,或增加设计的复杂度。创建型模原创 2015-01-08 14:07:18 · 352 阅读 · 0 评论 -
php中的设计模式之--命令模式
<?php /* (1)命令模式定义 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作 命令模式的经典应用在于图形界面的菜单功能,其本质是对命令进行封装,将发出命令的责任和执行命令的责任分割开来, 所以命令发起者不必要知道命令执行者的接口以及命令具体的执行细节。 (1)Command: 定义原创 2015-01-30 10:23:23 · 526 阅读 · 0 评论 -
php中的设计模式之--适配器模式
<?php /* 适配器模式 生活中的例子,给魅族MX2手机充电是,我们不能直接连上220v电源,需要220v (转换器) 模式中的角色 1 目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。(我们需要220电源的充电接口) 2 需要适配的类(Adaptee):需要适配的类或适配者类。(魅族手机上的充电接口) 3 适配器(Adapt原创 2015-01-30 10:20:28 · 450 阅读 · 0 评论 -
php中的设计模式之--策略模式
<?php /* 所谓策略模式是在不同的事件策略模式就是针对相同的行为,在不同的场景中拥有不同的算法,将这些算法封装起来, 并且这些算法是可以互换的,这样就对客户隐藏了相应算法的实现细节,可以很方便的在运行时选择具体的行为算法(即策略)。 简单的策略模式: 保安对于学生和老师进考场这个事件,可以分化出不同的策略,学生要查看考试证据,老师放行 */ interface Strategy{原创 2015-01-30 10:29:21 · 797 阅读 · 0 评论 -
php 中的 依赖注入(DI) 和 控制反转(IoC)
先假设我们这里有一个类,类里面需要用到数据库连接,按照最最原始的办法,我们可能是这样写这个类的 class example { private $_db; function __construct(){ include "./Lib/Db.php"; $this->_db = new Db("localhost","root","123456",原创 2014-12-05 22:23:33 · 750 阅读 · 0 评论 -
php中的设计模式之--代理模式
<?php /* 代理模式 代理模式是一种结构型模式,它可以为其他对象提供一种代理以控制对这个对象的访问。 例如武则天提供一个代理 替李治管理国家(对象) // 角色 • 抽象主题角色(Subject):它的作用是统一接口。此角色定义了真实主题角色和代理主题角色共用的接口,这样就可以在使用真实主题角色的地方使用代理主题角色。 • 真实主题角色(RealSubject):隐藏在代理角色后原创 2015-01-30 17:58:29 · 766 阅读 · 0 评论 -
php中的设计模式之--抽象工厂模式
抽象工厂模式 其与工厂方法模式的区别在于抽象工厂是先创建工厂,然后工厂在创建商品(实例); 定义一个创建对象的接口,让子类决定哪个类实例化。 他可以解决简单工厂模式中的封闭开放原则问题; // 产品(数据库)标准 interface DbInterface{ public function connect(Array $params=array());原创 2015-01-08 14:04:42 · 400 阅读 · 0 评论 -
php中的设计模式之--门面模式
<?php /** (1)外观模式(Facade)也叫门面模式,为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 为一些复杂的子系统提供一组接口 (2)主要角色 门面(Facade)角色 • 此角色将被客户端调用 • 知道哪些子系统负责处理请求 • 将用户的请求指派给适当的子系统 子系统(subsystem)角色 •原创 2015-02-12 17:53:16 · 1787 阅读 · 0 评论 -
php中的设计模式之--观察者模式
<?php /** 1. 概述 又称为发布-订阅(Publish-Subscribe)模式、模型-视图(Model-View)模式、源-监听(Source-Listener)模式、或从属者(Dependents)模式 2. 解决的问题 将一个系统分割成一个一些类相互协作的类有一个不好的副作用,那就是需要维护相关对象间的一致性。我们不希望为了维持一致性而使各类紧密耦合,这样原创 2015-02-12 17:20:27 · 809 阅读 · 0 评论