Принцип Tell Don't Ask
Tell Don't Ask (англ. Tell Don't Ask — «наказуй, не запитуй») — принцип проєктування, згідно з якими замість того щоб просити в об'єкта дані, та їх змінювати, варто наказувати об'єкту, що зробити.
Приклад
ред.Нехай, необхідно змоделювати об'єкт користувача, для якого можлива зміна імені. Наївна реалізація виглядатиме наступним чином:
// об'єкт містить лише дані, поведінка назовні
public class User
{
public string Name { get; set }
}
// використання
var user = new User();
user.Name = "New user name";
RaiseEvent(new UserNameChanged(user.Name));
Змінимо код згідно з цим принципом.
// об'єкт містить як дані, так і поведінку
public class User
{
private string _name;
public void ChangeName(string name)
{
_name = name;
RaiseEvent(new UserNameChanged(name));
}
}
// використання
var user = new User();
user.ChangeName("New user name");
Див. також
ред.Посилання
ред.- Tell Dont Ask Principle [Архівовано 1 червня 2021 у Wayback Machine.]