不变模式 Immutable Pattern

未匹配的标注

定义

一个对象的状态在对象被创建后就不再变化,这就是不变模式,属于类行为模式。 

一句话概括设计模式

对象只能复用共享,不能改变。

结构中包含的角色

Immutable 不变类

最小可表达代码

class Immutable
{
    private $name;

    public function __construct(string $name)
    {
          $this->name = $name;
    }

    public function getName()
    {
          return $this->name;
    }
}

$immutable = new Immutable("我是不变者");
var_dump($immutable->getName());

优点

  1. 容易维护。
  2. 线程安全。

缺点

  1. 更变对象状态需要创建新的对象。

何时使用

  1. 多线程访问。
  2. 对象需要被共享的时候。

实际应用场景

  1. JAVA中的java.lang.String类。
  2. DDD中的值对象。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
发起讨论 查看所有版本


暂无话题~