<?php
// 抽象工厂模式
// interface people 人类
interface people{
public function say();
}
// 第一个man类 继承people
class OneMan implements people{
// 实现people的say方法
public function say(){
echo "man1";
}
}
// 第二个man类 继承people
class TwoMan implements people{
public function say(){
echo "man2";
}
}
// 第一个woman类 继承people
class OneWoman implements people{
public function say(){
echo "woman1";
}
}
// 第二个woman类 继承people
class TwoWoman implements people{
public function say(){
echo "woman2";
}
}
// 创建对象类
// 将对象的创建抽象成了一个接口
interface createPeople{
public function createOne();
public function createtwo();
}
// 用于创建man对象的工厂类 继承createpeople
class FactoryMan implements createPeople{
// 创建第一个 man
public function createOne(){
return new OneMan();
}
// 创建第二个man
public function createTwo(){
return new TwoMan();
}
}
// 用于创建woman对象的工厂类 继承createpeople
class FactoryWoman implements createPeople{
// 创建第一个woman
public function createOne(){
return new OneWoman();
}
// 创建第二个woman
public function createTwo(){
return new TwoWoman();
}
}
// 执行测试类
class Client{
// 具体生成对象和执行方法
public function test(){
$factory = new FactoryMan();
$man_one = $factory->createOne();
$man_one->say();
$man_two = $factory->createTwo();
$man_two->say();
$factory = new FactoryWoman();
$woman_one = $factory->createOne();
$woman_one->say();
$woman_two = $factory->createTwo();
$woman_two->say();
}
}
$result = new Client();
$result->test();
php设计模式-抽象工厂模式
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...