E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
php设计模式
PHP设计模式
系列 - 工厂模式
工厂模式提供获取某个对象实例的一个接口,同时使调用代码避免确定实例化基类的步骤。工厂模式实际上就是建立一个统一的类实例化的函数接口。统一调用,统一控制。工厂模式是php项目开发中,最常用的设计模式,一般会配合单例模式一起使用,来加载php类库中的类。应用场景我们拥有一个Json类,String类,Xml类。如果我们不使用工厂方式实例化这些类,则需要每一个类都需要new一遍,过程不可控,类多了,到处
initphp
·
2012-06-23 10:00
设计模式
PHP
json
function
String
Class
PHP设计模式
系列 - 外观模式
外观模式通过在必需的逻辑和方法的集合前创建简单的外观接口,外观设计模式隐藏了调用对象的复杂性。外观设计模式和建造者模式非常相似,建造者模式一般是简化对象的调用的复杂性,外观模式一般是简化含有很多逻辑步骤和方法调用的复杂性。应用场景设计一个User类,里面有getUser获取用户信息接口在使用getUser这个接口的时候,需要设置用户的用户名和用户年龄所以在正常情况下,调用getUser接口,需要先
initphp
·
2012-06-23 10:00
设计模式
PHP
function
user
Class
扩展
PHP设计模式
系列 - 委托模式
委托模式通过分配或委托其他对象,委托设计模式能够去除核心对象中的判决和复杂的功能性。应用场景设计了一个cd类,类中有mp3播放模式,和mp4播放模式改进前,使用cd类的播放模式,需要在实例化的类中去判断选择什么方式的播放模式改进后,播放模式当做一个参数传入playList函数中,就自动能找到对应需要播放的方法。代码:cd类,未改进之前,选择播放模式是一种痛苦的事情cdInfo[$song]=$so
initphp
·
2012-06-22 13:00
设计模式
PHP
function
list
Class
PHP设计模式
系列 - 装饰器
什么是装饰器装饰器模式,对已有对象的部分内容或者功能进行调整,但是不需要修改原始对象结构,可以使用装饰器设应用场景设计一个UserInfo类,里面有UserInfo数组,用于存储用户名信息通过addUser来添加用户名getUserList方法将打印出用户名信息现在需要将添加的用户信息变成大写的,我们需要不改变原先的类,并且不改变原先的数据结构我们设计了一个UserInfoDecorate类来完成
initphp
·
2012-06-22 11:00
设计模式
数据结构
PHP
function
存储
Class
PHP设计模式
系列 - 数据访问对象模式
数据访问对象模式数据访问对象模式描述了如何创建透明访问数据源的对象。场景设计设计一个BaseDao基类,实现数据库操作基本的一些query,insert,update方法在实际使用的过程中,继承BaseDao,就可以直接调用基类的数据库操作方法代码:BaseDao数据库操作基类db=mysql_connect($config['user'],$config['pass'],$config['hos
initphp
·
2012-06-20 10:00
设计模式
PHP
数据库
function
query
insert
PHP设计模式
系列 - 建造者模式
什么是建造者模式建造者模式主要是为了消除其它对象复杂的创建过程。设计场景有一个用户的UserInfo类,创建这个类,需要创建用户的姓名,年龄,金钱等信息,才能获得用户具体的信息结果。创建一个UserInfoBuilder用户建造者类,这个类,将UserInfo复杂的创建姓名,年龄,金钱等操作封装起来,简化用户类的创建过程代码:UserInfo类,创建UserInfo类是复杂的,痛苦的。//建造者模
initphp
·
2012-06-19 19:00
设计模式
PHP
function
Class
Build
include
PHP设计模式
系列 - 适配器
什么是适配器:适配器设计模式只是将某个对象的接口适配为另一个对象所期望的接口。 设计情景:假如我们原始的有一个UserInfo的类,提供用户信息的类,早起设计该类的时候,只实现了一个getUserName获取用户名的方法。我们的MyOldObject类中,将从UserInfo这个类中获取用户信息,并且输出用户名随着时间的推移,我们旧的UserInfo这个类只提供的获取用户名的方法,已经没法满足需求
initphp
·
2012-06-19 12:00
设计模式
PHP
function
Class
扩展
include
Php设计模式
之【组合模式Composite Pattern】
【概述】组合模式是将一系列对象组合成树形结构用来表示整体和部分之间的关系,组合模式的主要目的是达到,访问组合对象和访问单个对象具有一致性。这里的组合对象比较特殊,本身他可以是由其他的对象组合而成,同时,这个组合对象又可以是组成更复杂对象的一个部分。我们来举个例子来说明吧,可能更直观【案例】黑枣图书公司的想把图书分类以目录的形式打印出来【OOA】组合模式将对象组合成树形结构以表示“部分-整体”的层次
uuleaf
·
2012-06-07 18:00
设计模式
PHP
function
Decorator
Class
menu
Php设计模式
之【迭代器模式Iterator Pattern】
概述迭代器(Iterator)模式,又叫做游标(Cursor)模式。GOF给出的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。案例黑枣电视公司的在生产的电视机,使用遥控器[后一个]和[前一个]按钮调节频道。当按下[后一个]按钮时,将切换到下一个预置的频道。想象一下在陌生的城市中的旅店中看电视。当改变频道时,重要的不是几频道,而是节目内容。如果对
uuleaf
·
2012-05-22 11:00
设计模式
PHP
list
function
iterator
interface
Php设计模式
之【模板方法模式Template Method Pattern 】
【案例:确定玩具的购买价格 】黑枣玩具公司的产品五花八门,不同的产品价格计算方式也不一样。所以对价格计算系统的要求非常高。价格因素主要包括以下几点。1. 不同的产品有不同的增值税ValueAddTax、关税TariffTax2. 还有一些玩具需要交其它的税类。如果是塑料玩具,还可能要缴纳环境污染税,其它税还有印花税、资源等,统称为OtherTax这些费用最终会加入最后的购买价格。【分析OOA 】每
uuleaf
·
2012-05-21 21:00
设计模式
算法
PHP
function
Class
产品
Php设计模式
之【策略模式Strategy Pattern】
【案例】黑枣游戏公司开发小鸡快跑的游戏,小鸡从鸡窝开跑,狂奔100米后到达安全地带。这500米中,小鸡可以使用辅助工具,不限于鸡爪、滑板、自行车、火箭运输。【分析OOA】小鸡快跑游戏是使用策略模式的一个典型实例,我们分析一下小鸡快跑游戏的特征1. 定义了一系列的算法。小鸡的狂奔包括鸡爪、滑板、自行车、火箭运输多个方式。2. 这些算法有相同的结果或实现,它们还可以相互替换。无论使用鸡爪还是滑板狂奔,
uuleaf
·
2012-05-21 15:00
Php设计模式
之【外观模式Facade Pattern】
【案例】黑枣设计公司开发一套流程图开发工具。使用这套开发工具在画一个箭头时,用户先画一个三角,再画一个坚杠就可以了。不过用户反馈画箭头太麻烦,希望能精简操作。classbase { publicfunctiondraw($char='*',$num=1) { echostr_repeat($char,$num); } } classTriangleextendsbase { publicfunc
uuleaf
·
2012-05-21 11:00
Php设计模式
之【适配器模式 Adapter Pattern】
【案例】黑枣玩具公司专门生产玩具,生产的玩具不限于狗、猫、狮子,鱼等动物。每个玩具都可以进行“张嘴”与“闭嘴”操作,分别调用了openMouth与closeMouth方法。abstractclassToy { publicabstractfunctionopenMouth(); publicabstractfunctioncloseMouth(); } classDogextendsToy {
uuleaf
·
2012-05-19 16:00
设计模式
PHP
function
Class
UML
interface
php设计模式
之单例模式
转自:http://hi.baidu.com/jeakccc/blog/item/3951205d8fa98955faf2c041.html 单例模式的要点有三个: 一.是某个类只能有一个实例; 二.是它必须自行创建这个实例; 三.是它必须自行向整个系统提供这个实例。 <?php /* 单例模式举例,其要点如下: * * 1. $_instance 必须
iwebcode
·
2012-05-09 18:00
设计模式
PHP设计模式
初探-详解单例模式
常见的设计模式有24种,其实就常规开发来说,了解其中的七八种就足够了。工厂模式是最常见的,一般初学面向对象首先接触的就是工厂模式,不多废话。单例模式( wikipedia )是指类只维持一个实例化后的对象,特别适合于创建数据库链接。使用单例模式维护数据库链接能够避免重复建立数据库链接,在单一进程中节省不必要的资源消耗。要做到在同一个进程中维护同一个资源,可能首先想到的是一个全局变量。一旦这个全局变
AiryLinus
·
2012-04-20 14:00
设计模式
PHP
单例模式
老师私房菜之如何学得比别人更高效
对LAMP技术有着深入的研究,在
PHP设计模式
,框架以及MySQL技术
txf2004
·
2012-04-10 10:00
老师私房菜之如何学得比别人更高效
对LAMP技术有着深入的研究,在
PHP设计模式
,框架以及MySQL技术
webcode
·
2012-04-10 10:00
PHP设计模式
之装饰者模式
介绍装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。思维导图有这样一个项目,做一个餐厅订餐系统。起初的代码结构是这样的。前面有很多Beverage的继承类,现在遇到的问题是牛奶的价钱上涨了,那么所有相关的类,我们都要进行调整,比如Milk,SugarAndMilk类,这种类还有很多,我们需要逐个去修改类中的方法――开发人员每次都做这种事情,要疯了!所以我们要
·
2012-02-29 00:19
PHP高级对象构建 工厂模式的使用
PHP设计模式
工厂模式的使用方法复制代码代码如下:getZhangsan();//制造产品echo$zhangsan->getNames();//产品输出功能?
·
2012-02-05 23:16
PHP设计模式
注册表模式
下面是基本的注册表类的代码:复制代码代码如下:request;}functionsetRequest(request$request){//设置注册的内容类$this->request=$request;}}classrequest{//被注册的类private$webname="WEB开发笔记";private$url="www.chhua.com";functiongetName(){echo
·
2012-02-05 21:43
PHP设计模式
注册表模式(多个类的注册)
以前我也写过一个注册表类,不过那一个不能进行多个类的注册,下面用数组对类进行了存储。复制代码代码如下:siteName=$siteName;$this->siteUrl=$siteUrl;}functiongetName(){return$this->siteName;}functiongetUrl(){return$this->siteUrl;}}classregistry{//注册表类单例模式
·
2012-02-05 21:53
五种常见的
php设计模式
转自: http://www.ibm.com/developerworks/cn/opensource/os-php-designptrns/设计模式一书将设计模式引入软件社区,该书的作者是ErichGamma、RichardHelm、RalphJohnson和JohnVlissidesDesign(俗称“四人帮”)。所介绍的设计模式背后的核心概念非常简单。经过多年的软件开发实践,Gamma等人发
shupan001
·
2012-01-19 15:00
浅析
php设计模式
(上)
由于本人才疏学浅,对问题认知难免有偏差,本着学习与共享的精神和大家一起探讨,若有不对之处,望大家多多批评指正。 一、什么是设计模式? 设计模式就是一个教你如何利用真实可靠的设计来组织你的代码的模板,是解决特定问题的有效方法。通俗点说就是设计方法。在软件设计中,不可避免地要碰到一些设计上的问题,这些问题前人已经遇到过,并且总结出一些解决相关问题的方法,称这一系列方法为“模式”。二、设计
mrc_elite
·
2011-12-23 15:41
PHP
职场
休闲
php设计模式
PHP设计模式
php /** * 转自 《
PHP设计模式
》 第六章: 装饰器模式 * * 装饰器设计模式适用于下列工作场合: 需求变化是快速和细小的,而且几乎不影响应用程序的其他部分。
keshion
·
2011-11-25 17:00
设计模式
PHP设计模式
php /** * 转自 《
PHP设计模式
》 第六章: 装饰器模式 * * 装饰器设计模式适用于下列工作场合: 需求变化是快速和细小的,而且几乎不影响应用程序的其他部分。
keshion
·
2011-11-25 17:00
设计模式
PHP设计模式
之观察者模式
这两天看了下php的观察者模式,在此,总结下实现方法先来解释下概念,观察者模式就是在对象之间定义一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象都会收到通知,并自动更新。概念介绍到此,上代码第一种方法:subject接口和observer接口都自己实现observers[]=$o; } functionremoveObserver(Observer$o){
jackjie2010
·
2011-11-25 14:22
PHP
观察者模式
职场
休闲
php设计模式
概念:设计模式不仅代表着更快开发健壮软件的有用方法,而且还提供了以友好的术语封装大型理念的思想。模式是在大型代码库中发挥作用的。php中有以下5种常用的设计模式:1.工厂模式2.单元素模式3.观察者模式4.命令链模式5.策略模式详情:1.工厂模式 工厂模式是一种类,它具有为你创建某些对象的方法。你可以使用工厂类创建对象,而不用直接使用new。这样如果想要更改所创建的对象类型,只需要更改该工厂即
sean_cd
·
2011-11-21 15:00
两个简单的
php设计模式
1.单例模式 不管多少次实例化类,都只有一个实例存在,适合数据库操作 <?php class my{ public static $_instance = NULL; public static function getInstance(){ if(self::$_instance == NULL) self::$_instance = new self();
王斌_code
·
2011-11-06 10:00
php 设计模式
五种常见的
PHP设计模式
五种常见的
PHP设计模式
设计模式 一书将设计模式引入软件社区,该书的作者是ErichGamma、RichardHelm、RalphJohnson和JohnVlissidesDesign(俗称“四人帮”)
雾渺
·
2011-09-30 17:00
PHP设计模式
之工厂模式
转自:http://blog.csdn.net/ipqxiang/article/details/1955677一、 抽象工厂(AbstractFactory)模式抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。为了方便引进抽象工厂模式,引进一个新概念:产品族(ProductFamily)。所谓产品族,是指位于不同产品等级结构,功能相关联的产品组成的家族。如图: 图中一共有四个产
jackjie2010
·
2011-09-23 17:17
设计模式
职场
工厂模式
休闲
php设计模式
Visitor 访问者模式
复制代码代码如下:";}publicfunctionvisitCroncreteElementB($element){echoget_class($element)."visit1B";}}classConcreteVisitor2extendsVisitor{publicfunctionvisitCroncreteElementA($element){echoget_class($element
·
2011-06-28 20:17
php设计模式
Adapter(适配器模式)
复制代码代码如下:";}publicfunctionstore($key,$value){echo"OldCachestore";}publicfunctionremove($key){echo"OldCacheremove";}publicfunctionfetch($key){echo"OldCachefetch";}}interfaceCacheable{publicfunctionset(
·
2011-06-26 11:28
php设计模式
Builder(建造者模式)
复制代码代码如下:";$this->_type=$type;}publicfunctionsetSize($size){echo"setproductsize";$this->_size=$size;}publicfunctionsetColor($color){echo"setproductcolor";$this->_color=$color;}}$config=array("type"=>"
·
2011-06-26 11:10
php设计模式
DAO(数据访问对象模式)
复制代码代码如下:_db=newMysqlDB();//这里的不能进行操作}/***获取处理**@paramarray$filter//过滤条件*@paramstring$field//获取字段*@paramint$page//当前页*@paramint$limit//页数*/functionfetch($filter=array(),$field="*",$page=1,$limit=null)
·
2011-06-26 11:20
php设计模式
Decorator(装饰模式)
复制代码代码如下:filter("一定要学好装饰模式");//---以下是使用装饰模式----classMessageBoardDecoratorextendsMessageBoardHandler{private$_handler=null;publicfunction__construct($handler){parent::__construct();$this->_handler=$han
·
2011-06-26 11:59
php设计模式
Delegation(委托模式)
复制代码代码如下:_object=new$object();}functionaddSong($location,$title){$this->_songs[]=array("location"=>$location,"title"=>$title);}functiongetPlayList(){return$this->_object->getPlayList($this->_songs);}}
·
2011-06-26 11:00
php设计模式
Facade(外观模式)
模式定义:外观模式(FacadePattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为门面模式,它是一种对象结构型模式。模式结构:外观模式的就是让client客户端以一种简单的方式来调用比较复杂的系统,来完成一件事情。Subsystem:复制代码代码如下:clas
·
2011-06-26 11:32
php设计模式
Factory(工厂模式)
复制代码代码如下:";}publicfunctionconnect(){}publicfunctionexec(){}}classPostgreDBimplementsDB{publicfunction__construct(){echo"Postgredb";}publicfunctionconnect(){}publicfunctionexec(){}}classMssqlDBimplemen
·
2011-06-26 10:41
php设计模式
Interpreter(解释器模式)
复制代码代码如下:interpreter($temp);}}}$obj=newInterpreter();$obj->execute("12345abc");?>
·
2011-06-26 10:39
php设计模式
Observer(观察者模式)
复制代码代码如下:_observers[]=$observer;}publicfunctionremoveObserver($observer){$key=array_search($observer,$this->_observers);if(!($key===false)){unset($this->_observers[$key]);}}publicfunctionnotifyObserve
·
2011-06-26 10:44
php设计模式
Singleton(单例模式)
复制代码代码如下:display();$obj1=Singleton::getInstance();var_dump(($obj===$obj1));
·
2011-06-26 10:32
php设计模式
Command(命令模式)
复制代码代码如下:_command[]=$command;}publicfunctionexecuteCommand(){foreach($this->_commandas$command){$command->execute();}}publicfunctionremoveCommand($command){$key=array_search($command,$this->_command);
·
2011-06-26 10:42
php设计模式
Template (模板模式)
继承关系由于自身的缺陷,被专家们扣上了“罪恶”的帽子。“使用委派关系代替继承关系”,“尽量使用接口实现而不是抽象类继承”等等专家警告,让我们这些菜鸟对继承“另眼相看”。其实,继承还是有很多自身的优点所在。只是被大家滥用的似乎缺点更加明显了。合理的利用继承关系,还是能对你的系统设计起到很好的作用的。而模板方法模式就是其中的一个使用范例。GOF给模板方法(TemplateMethod)模式定义一个操作
·
2011-06-26 10:28
php设计模式
Proxy (代理模式)
代理,指的就是一个角色代表另一个角色采取行动,就象生活中,一个红酒厂商,是不会直接把红酒零售客户的,都是通过代理来完成他的销售业务。而客户,也不用为了喝红酒而到处找工厂,他只要找到厂商在当地的代理就行了,具体红酒工厂在那里,客户不用关心,代理会帮他处理。代理模式,就是给某一对象提供代理对象,并由代理对象控制具体对象的引用。代理模式涉及的角色:抽象主题角色,声明了代理主题和真实主题的公共接口,使任何
·
2011-06-26 10:20
php设计模式
Composite (组合模式)
复制代码代码如下:_name=$name;}publicfunctionadd($component){$this->_items[]=$component;}publicfunctionremove($component){$key=array_search($component,$this->_items);if($key!==false)unset($this->_items[$key]);
·
2011-06-26 10:08
php设计模式
State (状态模式)
状态state模式是GOF23种模式中的一种,和命令模式一样,也是一种行为模式。状态模式和命令模式相当像,一样是“接口―实现类”这种模式的应用,是面向接口编程原则的体现。状态模式属于对象创建型模式,其意图是允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了他的类。比较常见的例子是在一个表示网络连接的类TCPConnection,一个TCPConnection对象的状态处于若干不同的状
·
2011-06-26 10:00
php设计模式
Bridge (桥接模式)
复制代码代码如下:";}}classConcreteImplementorBextendsImplementor{publicfunctionoperation(){echo"ConcreteImplementorBOperation";}}classAbstraction{protected$_implementor=null;publicfunctionsetImplementor($impl
·
2011-06-26 10:27
php设计模式
Chain Of Responsibility (职责链模式)
复制代码代码如下:_handler=$handler;}abstractfunctionhandleRequest($request);}classConcreteHandlerZeroextendsHandler{publicfunctionhandleRequest($request){if($request==0){echo"0";}else{$this->_handler->handleR
·
2011-06-26 10:23
php设计模式
FlyWeight (享元模式)
享元模式英文称为“FlyweightPattern”,我非常感谢将FlyweightPattern翻译成享元模式的那位强人,因为这个词将这个模式使用的方式明白得表示了出来;如果翻译成为羽量级模式或者蝇量级模式等等,虽然可以含蓄的表现出使用此模式达到的目的,但是还是没有抓住此模式的关键。享元模式的定义为:采用一个共享来避免大量拥有相同内容对象的开销。这种开销中最常见、直观的就是内存的损耗。享元模式以
·
2011-06-26 10:14
php设计模式
Mediator (中介者模式)
复制代码代码如下:_mediator=$mediator;}publicfunctionsend($message){$this->_mediator->send($message,$this);}abstractpublicfunctionnotify($message);}classConcreteMediatorextendsMediator{private$_colleague1=null
·
2011-06-26 10:46
上一页
17
18
19
20
21
22
23
24
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他