最近更新文章
浅述PHP设计模式(6)
三、行为型模式——调用行为的传递问题。 我们在前面已讨论了12种设计模式。其中涉及的是:变与不变,对变化如何处理,以及调用关系,对不可调用,如何方便实现成为可以调用。剩下的11个模式,都是与行为传递有关的,即不是变与不变的问题,也不是调用关系问题。而是调用流程控制的问题。这是因为,我们使用了类,使用了SOLID原则,调用流程不再是if else 或 switch case。 处理好这样的流程控制,则 ...
浅述PHP设计模式(7)
State(状态):允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它所属的类。 状态对于程序而言,实际上可以算是全局变量。但它是一些特定的类所用的参数。假如我们作为参数传入,则有一个问题,那就是调用者从哪里得到这个参数?如果没有合法的途径得到,那么,这个参数仍要放到全局变量中。而被调用者的行为,则是依的据这此参数而改变的。所以,用一个状态类保存这些参数,这样,被调用者就能得到这些 ...
如何寻找一个不会让你后悔的PHP开发框架
目前,有人使用的PHP框架有400多。很多开发了发布的PHP框架可以说是近乎上千个之多。在选择PHP开发框架时,很多人都会陷入迷茫,或因此走很多弯路。 因此,我们这里简单讲一下,如何寻找一个不会让你后悔的PHP开发框架。 首先要明确,先择框架,绝不是为了学习,也不是为了做一个企业网站或小型个人网站。面临选择问题的根本点在于,你这个网站是大型网站,或将来会成为大型网站。你不能因为框架而阻碍你的发展。 ...
PHP网站MVC架构模式中的种种误区
MVC架构模式已不再是新技术,也不再是新名词。但是,如果你能大概看一看因内的开源的PHP开发框架,或者国内的PHP开源软件。我们不难发现,很多这们的代码与其说是MVC,还不如称其为东施效颦。很多是为MVC而MVC。或者,只提供MVC的部分功能。而不是真正意义上的MVC。这其中,很多原因当然是软件开发者不懂得设计模式,不了解MVC的根本目的。 由此,我们先明确一下,MVC的根本目的有哪些: 1、分工 ...
PHP框架的认识误区
有人认为,PHP是每次请求都要初始化资源,这个开销非常大。由此,PHP不适合使用开发框架。 对于PHP,确实没有类的持久化,使得每次请求都要初始化资源,但是,这并不是开销的主要问题所在。最主要的问题,是在于开发PHP框架的人,对PHP本身的特性了解多少。最简单的,MVC需要检测UA,如果使用PHP自带的get_browser函数,那肯定是死定了。因为,使用上的方便与简单,导致的是性能的开销。 认为 ...
企业应用架构模式(一)——细说企业应用的分层架构
大型企业应用一般首先要将架构分为三层:表现层,领域层,数据源层。其中: 表现层的责职是仅完成数据和输入与输出,以及所有的界面交互逻辑。 领域层的责职则是完成所有的业务逻辑。 数据源层则是完成数据库的存取操作。 由此可以看出,表现层相当于领域层的一个用户。而领域层也相当于是数据源到的一个用户。在PHP开发框架中,实际并不存在领域层的代码。(所以,一些框架声称,它支持领域驱动设计,实际是懵人的 ...
浅述PHP设计模式(1)
1、设计模式是什么? 先用比喻来回答:假如面向对象是兵器,那么,设计模式是一套武术套路,是一本编程人员均需要的葵花宝典。假如面向对象是一个算盘,那么,设计模式就如同是珠算口诀。学珠算是要记口诀的。但会打算盘的是不用口诀的。并不是不用,而是在用时,己没有文字或模式的具体概念干扰了。假如面向对象是五笔字型,那么,设计模式,就是五笔字型的口诀。但会打字的,则是想字读码,或看字读码,已不再需要口诀了。学习设 ...
浅述PHP设计模式(2)
4、SOLID原则浅述 SRP:The Single Responsibility Principle 单一责任原则单一责任原则,要求,一个函数只完成一个功能,一个类,只实现一类具体的对象。这样说仍很抽象。但更具体一些,对于一个函数,应当是一个输入与输出单元。即有明确的输入数据,算法,输出数据的结构。对于一个类,在核心代码层面,它应当是一个明确的算法实体,或者是功能实体。如果是在应用的具体层面,应当 ...
浅述PHP设计模式(3)
5、其它面向对象的原则 CARP: The Composite/Aggregate Reuse Principle 合成聚合复用原则合成聚合复用原则的定义:在一个新对象中使用一些已有的对象,使之成为新对象的一部分。新的对象通过向这些对象的委派达到复用的目的。提出这一原则的根本点在于,很多编码的问题是滥用继承。通过SOLID原则,我们可能分出了较多的类。如果最终我们仍是使用SOLID原则将这些类最终继 ...
浅述PHP设计模式(4)
6、具体设计模式讨论。 (说明,这一部分是本人在此网站(iteye.com)的博客文章《设计模式应用浅述》基础上修改的。其目的是使其更易于理解与掌握。)一、创建型模式——特别的变量问题 Factory Method(工厂方法):定义一个用于创建对象的接口,让子类决定将哪一个类实例化。Factory Method使一个类的实例化延迟到其子类。 什么是工厂?工厂是按订单生产不同的产品。当然,这些产品都 ...
浅述PHP设计模式(5)
二、结构型模式——类与方法的调用控制问题 Adapter(适配器):将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 实现方式:创建一个Adapter,对构造函数传入的类作为实际操作类。Adapter通过代码对操作类各个方法的调用,实现调用方所需要的方法。 可以看出,使用这一具类的场景,是具体代码的接口已经确定。并且核心代码 ...
群组知识库热门文章
- 6732 如何寻找一个不会让你后悔的PHP开发框架
- 5454 PHP框架的认识误区
- 2963 PHP网站MVC架构模式中的种种误区
- 2546 企业应用架构模式(一)——细说企业应用的分层架构
- 2026 浅述PHP设计模式(6)