抽象工厂模式

多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。
一个抽象工厂类,可以派生出多个具体工厂类。
每个具体工厂类可以创建多个具体产品类的实例。

 

<?php
//面向接口编程,这是一个接口,抽象类,用于规范业务层子类实现
abstract class AUser {
abstract public function selectUser(); //查找
abstract public function updateUser(); //修改
abstract public function deleteUser(); //删除
abstract public function addUser(); //新增
}
?>

 

<?php
//这是一个业务层,实现接口即可
class UserAction extends AUser {
public function selectUser() {
return '查找用户';
}
public function updateUser() {
return '修改用户';
}
public function deleteUser() {
return '删除用户';
}
public function addUser() {
return '新增用户';
}
}
?>

 

<?php
//工厂,用来生产各个产品的业务层对象
//每个对象,可以使用之前学过的单例模式,让他在整个流程中只保持一个实例
class Factory {
static public function getUser() {
return new UserAction();
}
static public function getArticle() {
//return new ArticleAction();
}
}
?>

 

<?php
//用于客户端直接调用的类
class User {
private $_obj;
public function __construct() {
$this->_obj = Factory::getUser();
}
public function selectUser() {
return $this->_obj->selectUser();
}
public function updateUser() {
return $this->_obj->updateUser();
}
public function deleteUser() {
return $this->_obj->deleteUser();
}
public function addUser() {
return $this->_obj->addUser();
}
}
?>

 

$_user = new User();
echo $_user->selectUser();
echo $_user->addUser();

转载于:https://www.cnblogs.com/jsmiao/p/4567374.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值