PHP中设计模式的学习笔记
PHP中设计模式的学习笔记
设计模式(Design Pattern)是面向对象设计中反复出现的问题的解决方案,设计模式是一种比一般类的设计更加抽象的一种思想,
它往往涉及到多个类的定义和使用。
在PHP的开发过程中,经常使用到得设计模式包括:简单工厂模式、单元素模式、观察者模式、命令模式、策略模式以及MVC模式等。
/**
* 简单工厂模式(Simple Factory Pattern),具体指创建一个类似于工厂的类,通过对类中成员方法的调用返回不同的对象
* 该模式的核心是工厂类,该类中含有必要的判断逻辑,可以决定在什么时候创建并返回哪个产品的实例化对象
*/
//定义抽象类Product
abstract class Product
{
abstract function getName();
}
//定义具体产品类A
class ProductA extends Product
{
public function getName()
{
echo "I am product A";
}
}
//定义具体产品类B
class ProductB extends Product
{
public function getName()
{
echo "I am product B";
}
}
//定义工厂类
class ProductFactory
{
static function create($name)
{
switch($name)
{
case "A":
return new ProductA();
case "B":
return new ProductB();
}
}
}
$product=ProductFactory::create("A");
$product->getName();
echo "<br/>";
$product=ProductFactory::create("B");
$product->getName();
/**
* 单元素模式(Singleton Pattern)是指对指定的类只能实例化一次。
* 该模式通常包含一个私有构造方法,用来确保无法通过创建对象或者克隆的方式对其进行实例化
* 该模式还包含有一个私有静态属性和公有静态方法。
* 公有静态方法负责对其本身进行实例化,而私有静态属性负责存储实例化的对象。
*/
class Singleton
{
private static $ins
相关文档:
$xml = '../data/news.xml' ;
$qp = qp($xml, 'news_root')->children();
$arrData = array() ;
$i = 0 ;
foreach( $qp as $child )
{
print_r( $arrData );
echo "<br/>hi<br/>";
unset($arrSub);
$arrSub = array() ;
array_push( $arrData , &$arrSub );
print_r( $arrData ......
上次继本人发布了VC编写PHP扩展之Hello World篇后,反映很强烈,大家都希望能脱离PHP菜鸟行列,这次我给大家带来PHP调用C#编写的COM+组件。 COM+组件源代码 CODE:using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; using System.Reflection; using System.Data.O ......
1、社团简介:
LAMP兄弟连社团(简称兄弟连)是易第优教育学院领导下的社团组织,是学院联系广大LAMP爱好者的桥梁和纽带,是学院社团管理协调的机构。
2、社团性质:
由LAMP兄弟连发起(www.lampbrother.net)的全国专业性、公益性社会沙龙组织。
3、社团目的:
a、为爱好LAMP的朋友们搭建一个学习交流的平台
b、为 ......
以前只弄过asp,最近有点兴趣来学下php,发现php比asp不是一般的功能强大。
刚开始偷了下懒,没有去php官网看帮助,英文的虽然看起来不难,但是还是习惯看中文,于是搜索了几篇有关php在iis上安装的文章,按照这些文章上的说明开始配置php。我就顶它个肺,配置起来问题千奇百怪,折腾了两天,也郁闷了两天。
得,索性看官 ......
<?php
/*
Version: v1.0
CopyRight Davis.z 2010
Creation Date 2010-02-25
----------------------- Table Script ------------------------
CREATE TABLE [dbo].[T_Employee](
[Name] [nvarchar](50) COLLATE Korean_90_CS_AS NOT NULL,
[Age] [nvarchar](5) COLLATE Korean_90_CI_AS NULL,
[ ......