程序设计模式
山雨欲来-风满楼
山雨欲来风满楼,我自横刀向天笑!
性格、爱好、生活态度、工作情况、受教育状况可从我的博客文章窥得端倪:)
展开
-
PHP的命令Command模式
命令Command模式是GOF23种模式中的一种,是一种行为模式。这种模式很难理解。《设计模式》一书中对它语焉不详。而网上的一些文章对其的解释也是错误的。实际上,命令模式并不是那么神秘。命令模式的理解,关键有2点:1. 使用接口。通常命令模式的接口中只有一个方法。 实现类的方法有不同的功能,覆盖接口中的方法。在面向对象编程中,大量使用if…else…,或者switch…case…这转载 2015-12-10 16:04:28 · 609 阅读 · 0 评论 -
面向模式的软件架构哲学思想
很多代码背后,都是某种哲学思想的体现。以下引用《面向模式的软件架构》卷1模式系统第六章模式与软件架构软件架构支持技术(开发软件时要遵循的基本原则)抽象封装信息隐藏分离关注点耦合与内聚充分、完整、简单策略与实现分离策略组件负责上下文相关决策,解读信息的语义和含义,将众多不同结果合并或选择参数值实现组件负责转载 2015-12-12 16:06:33 · 809 阅读 · 0 评论 -
Laravel中的依赖注入之IoC容器应用详解
看Laravel的IoC容器文档只是介绍实例,但是没有说原理,之前用MVC框架都没有在意这个概念,无意中在phalcon的文档中看到这个详细的介绍,感觉豁然开朗,复制粘贴过来,主要是好久没有写东西了,现在确实很懒变得!首先,我们假设,我们要开发一个组件命名为SomeComponent。这个组件中现在将要注入一个数据库连接。在这个例子中,数据库连接在component中被创建,这种方法是不切转载 2015-12-12 14:56:26 · 554 阅读 · 0 评论 -
常用PHP设计模式
最近想业余时间来复习下设计模式的,本来同事那借来一本《深入PHP : 面向对象、模式与实践》,没什么时间重头开始看,无意中在网上搜到这这个博客,作者写了几篇设计模式的文章,简单易懂,一口气看完,这里分享一下!以下链接文章转自: 醉清风的博客PHP设计模式之工厂方法模式(Factory Method)PHP设计模式之模板方法模式(Template Method)PHP设计转载 2015-12-12 14:37:04 · 393 阅读 · 0 评论 -
用PHP实现享元FlyWeight模式
享元模式英文称为“Flyweight Pattern”,我非常感谢将Flyweight Pattern翻译成享元模式的那位强人,因为这个词将这个模式使用的方式明白得表示了出来;如果翻译成为羽量级模式或者蝇量级模式等等,虽然可以含蓄的表现出使用此模式达到的目的,但是还是没有抓住此模式的关键。享元模式的定义为:采用一个共享来避免大量拥有相同内容对象的开销。这种开销中最常见、直观的就是内存的损耗转载 2015-12-10 15:59:15 · 424 阅读 · 0 评论 -
PHP的代理Proxy模式
代理,指的就是一个角色代表另一个角色采取行动,就象生活中,一个红酒厂商,是不会直接把红酒零售客户的,都是通过代理来完成他的销售业务。而客户,也不用为了喝红酒而到处找工厂,他只要找到厂商在当地的代理就行了,具体红酒工厂在那里,客户不用关心,代理会帮他处理。代理模式,就是给某一对象提供代理对象,并由代理对象控制具体对象的引用。代理模式涉及的角色:抽象主题角色,声明了代理主题转载 2015-12-10 16:01:00 · 3304 阅读 · 1 评论 -
IoC控制反转(即依赖注入模式DI)介绍
转自:http://www.nowamagic.net/program/program_AboutIoC.php静态类的使用是一个有争议的话题,有人甚至提倡不要在类的名称上使用作用域限定符。关于静态特性争论的焦点在于一个被称为IoC控制反转的设计原则。IoC这个设计原则试图在面向对象编程中去掉所有相互依赖的现象。这个原则对于复杂的系统来说是很重要的。它使得对象具有更好的多态性和封装转载 2015-12-07 11:47:33 · 342 阅读 · 0 评论 -
PHP的模板Template模式
继承关系由于自身的缺陷,被专家们扣上了“罪恶”的帽子。“使用委派关系代替继承关系”,“尽量使用接口实现而不是抽象类继承”等等专家警告,让我们这些菜鸟对继承“另眼相看”。其实,继承还是有很多自身的优点所在。只是被大家滥用的似乎缺点更加明显了。合理的利用继承关系,还是能对你的系统设计起到很好的作用的。而模板方法模式就是其中的一个使用范例。GOF给模板方法(Template Method)模式定转载 2015-12-10 16:03:01 · 556 阅读 · 0 评论 -
State状态模式
状态state模式是GOF23种模式中的一种,和命令模式一样,也是一种行为模式。状态模式和命令模式相当像,一样是“接口—实现类”这种模式的应用,是面向接口编程原则的体现。状态模式属于对象创建型模式,其意图是允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了他的类。比较常见的例子是在一个表示网络连接的类TCPConnection,一个TCPConnection对象的状态处于若干转载 2015-12-10 15:11:36 · 468 阅读 · 0 评论 -
PHP的耦合设计模式
一个软件,它具有许多类,类与类之间需要互相调用,一旦某个类与另一个类具有紧密耦合关系的时候,这个软件的重用性就会大大降低。所以一个软件的重用性的高低就取决于它的耦合程度的高低。耦合度:程序模块之间的关联、依赖程度。在设计过程中提出:当设计这个软件的体系结构的时候,就发现了这个软件的逻辑运行部分(SimpleRouter类)和输出部分(SimpleRouterFrame类)不能很转载 2015-12-10 15:57:25 · 2100 阅读 · 0 评论 -
策略模式与状态模式的异同
自从知道了策略模式和状态模式这两个行为类的设计模式后,就一直觉得这两个模式有点难以区分。不仅 UML 类图看起来没什么区别,就连具体实现也是非常相似。经过一段时间研究,稍微有了一点理解。策略模式和状态模式都是消除含有大量 if...else 或 switch...case 这类硬编码结构的良策,虽然不是所有硬编码结构都可以用这两种模式来消除。根据我的理解,可以从其应用场景方面来区分两个模式。...转载 2019-03-25 15:25:49 · 1279 阅读 · 0 评论