zoukankan      html  css  js  c++  java
  • 设计模式

    1.单例模式

    场景:连接mysql、操作cookie只有一个对象去连接
    原理:只能new一个对象(禁止new多个和clone)

    class single{
    protected static $sin = null;
    //方法前加final不能被覆盖,类前加final不能被继承
    //禁止外部NEW
    final protected function __construct()
    {
    }
    //禁止克隆
    final protected function __clone()
    {
    // TODO: Implement __clone() method.
    }

    //设置内部
    public static function getins(){
    if(self::$sin === null){
    self::$sin = new self();
    }
    return self::$sin;
    }
    }
    $s1 = single::getins();
    $s2 = single::getins();
    if($s1 == $s2){
    echo "是相同的";
    }else{
    echo "不是相同的";
    }

    2.工厂模式:工厂方法或者类生成对象,而不是在代码中直接new

    interface db{
        function conn();
    }
    
    interface Factory{
        function createdb();
    }
    
    class dbmysql implements db{
        public function conn()
        {
            echo "连接了mysql";
        }
    }
    
    class dboracle implements db{
        public function conn()
        {
            echo "连接了oracle";
        }
    }
    
    class mysqlfac implements Factory{
        public function createdb()
        {
            return new dbmysql();
        }
    }
    
    class oraclefac implements Factory{
        public function createdb()
        {
            return new dboracle();
        }
    }
    
    $fac = new mysqlfac();
    $db = $fac->createdb();
    $db->conn();
    
    $fac = new oraclefac();
    $db = $fac->createdb();
    $db->conn();
  • 相关阅读:
    JSP基础语法:注释、Scriptlet、编译指令
    JDBC的LIKE书写规范
    AWT回顾篇
    1.五子棋预备知识
    对象的生命周期回顾篇
    学习activemq(2)写个简单的程序
    activemq in action(3)剖析JMS消息(转)
    activemq in action(1)
    学习activemq(3)
    hadhoop安装
  • 原文地址:https://www.cnblogs.com/finnlee/p/8502997.html
Copyright © 2011-2022 走看看