╃巡洋艦㊣ 2017-03-22 16:57:54 8283次浏览 10条回复 17 16 0

单例模式

public function set($class, $definition = [], array $params = [])
{
    // 规范化 $definition 并写入 $_definitions[$class]
    $this->_definitions[$class] = $this->normalizeDefinition($class, $definition);

    // 将构造函数参数写入 $_params[$class]
    $this->_params[$class] = $params;

    // 删除$_singletons[$class]
    unset($this->_singletons[$class]);
    return $this;
}

public function setSingleton($class, $definition = [], array $params = [])
{
    // 规范化 $definition 并写入 $_definitions[$class]
    $this->_definitions[$class] = $this->normalizeDefinition($class, $definition);

    // 将构造函数参数写入 $_params[$class]
    $this->_params[$class] = $params;

    // 将$_singleton[$class]置为null,表示还未实例化
    $this->_singletons[$class] = null;
    return $this;
}

抽象工厂模式(Abstract Factory)

工厂方法模式(Factory Method)

迭代器模式(Iterator)

class SessionIterator implements \Iterator

MVC模式

MVC是三个单词的缩写:Model, View, Controller。 MVC是一种设计模式,目前几乎所有的Web开发框架都建立在MVC模式之上。

依赖注入(Dependency Injection)模式

http://www.yiichina.com/tutorial/112

适配器模式(Adapter)

适配器模式的优点既没有修改原来的类,又扩展了原来的类, 复用了现存的类,解决了现存类和复用环境要求不一致的问题。

建造者模式(Builder)

建造者模式也称生成器模式,核心思想是将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示。

$config = yii\helpers\ArrayHelper::merge(
    require(__DIR__ . '/../../common/config/main.php'),
    require(__DIR__ . '/../../common/config/main-local.php'),
    require(__DIR__ . '/../config/main.php'),
    require(__DIR__ . '/../config/main-local.php')
);

$application = new yii\web\Application($config);
$application->run();

yii\web\Application 类使用了建造者模式,我们不用逐一去配置应用程序的每个配置项,通过yii\helpers\ArrayHelper::merge将所有的配置项合并到一起统一配置。

组合模式(Composite)

装饰模式(Decorator)

代理模式(Proxy)

外观模式(Facade)

观察者模式(Observer)

状态模式(State)

模板方法模式(Template Method)

策略模式(Strategy)

享元模式(Flyweight)

Yii2 中高级版本(Advanced)有三个入口(frontend, backend, console),三个入口的应用程序类(Application)都继承同一个yii\base\Application类,这样它们共享同一个 common 目录。

责任链模式(Chain of Responsibility)

觉得很赞
您需要登录后才可以回复。登录 | 立即注册