不变模式 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());
优点#
- 容易维护。
- 线程安全。
缺点#
- 更变对象状态需要创建新的对象。
何时使用#
- 多线程访问。
- 对象需要被共享的时候。
实际应用场景#
- JAVA 中的 java.lang.String 类。
- DDD 中的值对象。
推荐文章: