
设计模式-php
豆不女
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
单列模式
#单例模式 #@单例模式有两种实现方式:前置(提前建立对象)/后置(需要才建立) #防止继承,final:方法前不能被覆盖,类前不能被继承 #防止clone #防止new #@优点:减少类生成次数,节约内存,提供第二次程序访问速度,一般在做工具类的时候用的多 #后置 final class sigle { private static $_sg; //防止new private func原创 2017-03-21 13:56:02 · 311 阅读 · 0 评论 -
策略模式
#策略模式 #根据不同的状况,用不同的策略完成这个事物 #在这里主要明确1点: #@1.每一个策略都是单独的策略主体,单独的完成这个事物。所有策略又隶属于同一个策略系统 #策略系统 abstract class A { public abstract function prt_A(); } class aa extends A { public function prt_A() {原创 2017-03-21 14:00:04 · 290 阅读 · 0 评论 -
工厂方法
#简单工厂 #一个工厂可以创建很多种产品,每种产品都有一个“类别”去管理 #优点:封装性:为客户端只提供工厂的地址告知自己能创建什么“类别”的产品,工厂内部的生产过程相对于客户来说是封闭的 # #工厂方法 #工厂方法是相对于简单工厂有以下一些优点: #@1.工厂方法更利于内部的管理和扩展,在简单工厂的基础上把产品“类型”生产线进行了单独的管理,更利于以后产品类型的扩展,也遵循了原创 2017-03-21 14:02:44 · 240 阅读 · 0 评论 -
简单工厂
#简单工厂 #一个工厂可以创建很多种产品,每种产品都有一个“类别”去管理 #优点:封装性:为客户端只提供工厂的地址告知自己能创建什么“类别”的产品,工厂内部的生产过程相对于客户来说是封闭的 # interface db { public function conn(); } class dbMysql implements db { public function conn() {原创 2017-03-21 14:05:19 · 251 阅读 · 0 评论 -
观察者模式
#观察者模式 #理解: #@0.解耦两个有一定关联的对象,可以随意的添加和删除额外的对象,增强程序的扩展和灵活性 #@1.一个对象可以被多个观察者观察 #@2.当对象发生改变时,会主动通知所有观察者,进行相应的操作 #@3.对象能够管理所有的观察者(增加观察者,删除观察者) #使用场景:一个或多个事物会随着另外一个事物的变化而变化的情况,如:网络收到数据需要其它方法处理,界面发生变化,其它区域也要原创 2017-03-21 14:06:47 · 278 阅读 · 0 评论 -
适配器模式
#适配器模式 #理解:两个格式不一样的事物需要交互,此时有可能彼次访问接口不一致或数据格式不一致,双方都不能修改等情况。 #@此时就需要产生一个适配器类去把那些不一致性转为为一致性。 #扩展: #@:1.单向适配器,单方面转换去协同另一方 #@:2.双向适配器,双方向都转换去协同 #@: 3.可以通过多重继承实现,也可以单继承 class A { public function prt_A($原创 2017-03-21 14:10:44 · 315 阅读 · 0 评论 -
职责链
#职责链模式 #实现方式有两种:由事物发起人自己去往下一个流程提交;由处理人完成下一个流程提交 #@职责链属于流程范式开发,完成某一件事物形成一个流程规则去完成。 #@这件事物一定要由职责人完成,并且反馈处理情况 #扩展: #@1.一个事物可以由一个职责人完成,那么事物当到达职责人后就立即停止流程。 #@2.一个事物可以由所有职责人共同完成,那么事物会通过所有的责任人。 #处理事物 class原创 2017-03-21 14:14:21 · 314 阅读 · 0 评论 -
装饰器模式
#装饰器模式 #@理解:为一个事物在自身的基础上进行添加功能、属性等操作。 #利用构造函数的特点,获取原事物的属性,再增添自己的属性。 #避免深度继承带来的麻烦,同时可以更加随意的进行添加装饰 #扩展: #使用场景:比如发表评论,把需要的评论都汇集在一起 #原事物 class BaseConent { public function action() { echo "我就是我"; }原创 2017-03-21 14:16:07 · 362 阅读 · 0 评论