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");
Див. також
Об’єктно-орієнтоване програмування Принцип YAGNI Принцип DRY Принцип KISS
Посилання Tell Dont Ask Principle