Sobes.tech
Junior — Middle

La classe possiede immutabilità se ha una proprietà aperta?

sobes.tech AI

Risposta dell'AI

Если у класса есть открытое (public) свойство, то он не считается иммутабельным, потому что внешние объекты могут напрямую изменить значение этого свойства после создания объекта.

Иммутабельность означает, что состояние объекта нельзя изменить после его создания. Для этого все свойства обычно делают приватными или защищёнными, а изменения возможны только через методы, которые возвращают новый объект с изменённым состоянием.

Пример иммутабельного класса в PHP:

class ImmutableUser {
    private string $name;

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

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

    public function withName(string $name): self {
        return new self($name);
    }
}

Здесь свойство $name закрыто, и изменить его можно только создав новый объект через метод withName.