• 抽象工厂模式


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

    <?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();

  • 相关阅读:
    SQL舊面版與標准版不能互導數據
    今天總算可以繼續寫日記了
    MDAC2.7没有安装,控件不能运行
    希望5月份网络能开通
    SQLITE入门逐步讲解SQLITE命令行(一)
    C#使用SQLite数据库的代码示例
    红外遥控 Arduino 实例
    SQLite数据库是中小站点CMS的最佳选择
    防止 SQLite 数据库被下载的方法
    关于Linux下的Grep命令简介
  • 原文地址:https://www.cnblogs.com/jsmiao/p/4567374.html
Copyright © 2020-2023  润新知