不变模式 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中的值对象。
推荐文章: