zoukankan      html  css  js  c++  java
  • 抽象工厂模式

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

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

  • 相关阅读:
    通过JDBC连接oracle数据库的十大技巧
    asp.net里导出excel表方法汇总
    流式媒体
    html 另存为/打印/刷新/查看原文件等 代码
    JSP 语法详解
    让一个网页打开的同时自动为另一个网页自动填写表单并提交
    StreamWriter输出中文乱码的问题
    “mailto”的六则应用技巧
    返回目录大小
    JDBC基础(二)
  • 原文地址:https://www.cnblogs.com/jsmiao/p/4567374.html
Copyright © 2011-2022 走看看