Описание тега tell-dont-ask
Tell-not-ask - это подход к объектно-ориентированному проектированию, направленный на то, чтобы рассказать объектам о том, что вы хотите, чтобы они делали, вместо того, чтобы задавать им вопросы об их состоянии, принимать решение и затем указывать им, что делать.
2
ответа
Использование события для применения шаблона TellDontAsk
Я пытался вызвать событие в cSharp, чтобы уведомить об изменении кода в моем приложении, чтобы иметь сценарий tellDontAsk. У меня есть простой класс, который реализует из класса событий public class SimpleTellDontAsk : ISomeEvent { public void doSom…
27 фев '13 в 11:11
1
ответ
Как выполнить модульное тестирование парсера, который возвращает объекты "Tell-Dont-Ask"?
У меня есть два класса, Parser а также Item, Класс Parser анализирует некоторый структурированный документ и возвращает Item-объекты, если вы называете что-то вроде Parser::GetItem(int some_id), Класс Item был написан с учетом принципа "говори - не …
11 июл '13 в 09:43
1
ответ
Создание большого количества частных классов - плохой стиль?
Я делаю проект на Java, который имеет много методов, которые требуют нескольких возвращаемых объектов. Для этого я должен продолжать создавать частные классы, которые инкапсулируют возвращаемые объекты. Объекты имеют смысл, так как FontResult в моем…
19 июл '16 в 13:06
4
ответа
"Скажи, не спрашивай" над несколькими объектами домена
Вопрос Как придерживаться принципа "говори, не спрашивай" при выполнении функции, включающей несколько объектов. Пример - Генерация отчета У меня есть следующие объекты (только для иллюстрации): Автомобиль, Лошадь, Кролик Между этими объектами нет н…
09 мар '12 в 15:44
2
ответа
Могу ли я использовать MVC без геттеров и сеттеров?
Если я не хочу показывать состояние моего объекта, но мне все еще нужно отображать его (скажем, в HTML, XML или JSON), как бы я поступил так в среде MVC. Имеет ли смысл иметь метод экспорта, который экспортирует скрытый неизменный объект ("класс дан…
26 июл '09 в 14:21
1
ответ
Рельсы ActiveRecord скажи не спрашивай
Имея два класса, как это: class Site < ActiveRecord::Base has_one :subscription, dependent: :destroy def self.hostname_active?(hostname) site = where(hostname: hostname) site.exists? && site.first.active? end def active? subscription.acti…
04 дек '12 в 18:10
2
ответа
Как выполнить юнит-тестирование в классах последователей "скажи, не спрашивай"?
Я думаю, что проблема лучше всего объясняется на примере. public class MyService { private OtherService theOther; public void setTheOther(OtherService srv) { theOther = srv; } public void myBusinessStuffFor(int id) { theOther.applyToAllWith(id, new …
20 янв '12 в 08:22
3
ответа
Как проверить объект, когда я не могу получить доступ к состоянию?
У меня есть фабричный класс, который создает объект на основе параметра, который он получает. Параметр является идентификатором, который сообщает ему, какой объект он должен создать. Его первым шагом является использование уровня доступа к данным дл…
23 авг '11 в 14:38
0
ответов
Скажите не спрашивайте - как это относится к этому примеру?
В качестве прокси для чего-то реального, над чем я работаю, подумайте о создании модели. У нас будет Parts класс, представляющий детали модели, в комплекте с методами для изготовления детали на основе заданных параметров, для проверки и т. д. У нас …
20 май '12 в 00:33
5
ответов
Скажите, не спрашивайте принцип и срок действия пароля
Пытаясь придерживаться прагматических принципов программирования, я пытаюсь решить, как обрабатывать изменения пароля пользователя, основываясь на принципе "говори, не спрашивай". У меня есть объект пользователя, пароль которого истекает каждые 30 д…
26 мар '12 в 19:47
0
ответов
Принсипи конфликтует с MVVM?
У меня есть проект Android, использующий структуру MVVM. Слои View и Model хорошо разделены. Но согласно принципу "Скажи, не спрашивай" модель должна уметь рисовать сама. Вот и мне интересно, как это сделать в этом случае? "Скажите не спрашивайте", …
02 авг '18 в 13:01
3
ответа
Относится ли "скажи, не спрашивай" к проверке пользовательского ввода?
Я почему-то все эти годы игнорировал принцип ООП "говори, не спрашивай", потому что я впервые узнал об этом пару дней назад. Но контекстом было обсуждение кода проверки, который был перемещен со страницы веб-формы ASP.NET в объект данных / бизнес, и…
18 фев '09 в 16:27
1
ответ
Tell-dont-ask princible использует больше памяти, как сделать компромисс?
class Operation { private $op; public function __construct() { $this->op = []; for ($i = 1; $i < 1000; $i++) { $this->op[] = rand(1,9999); } } public function getOps() { return $this->op; } } class TestTellDontAsk { public function doItB…
05 авг '17 в 13:46
1
ответ
Как решить, что последнее "спросить" в сложном расчете соответствует "говорите! Не спрашивайте!"?
Сегодня я думал о "скажи! не спрашивай!" и экспериментируя с этим кодом. интерфейсы: interface IValidationContext { void AddMessage(string text); bool IsValid { set; } } interface IValidation { void ValidateInput(Input input, IValidationContext cont…
21 авг '12 в 18:36
1
ответ
"Скажи, не спрашивай", когда один класс делает и сохраняет вычисления с данными из другого
Пожалуйста, скажите мне, если я применяю принцип Tell, не спрашивайте правильно в этом примере. У меня есть два класса, CalculationResults имеет функцию calculateMe(), который использует Data сделать некоторые расчеты. Важно, что он хранит результат…
17 июн '15 в 13:36
1
ответ
Одиночная ответственность (СРП) и Скажи не спрашивай (ТДА)?
Я понимаю, что многие принципы дизайна в некоторых случаях противоречат друг другу. Итак, мы должны взвесить их и посмотреть, какой из них более выгоден. До сих пор я знал о принципе SRP и делал много проектов исключительно на основе этого, но внутр…
05 ноя '16 в 12:29
1
ответ
Как бы вы внедрили принцип "не говори" в HAML?
Вот вещь У меня есть кнопка, которая в зависимости от сценария будет вести себя, выглядеть и иметь разный текст. Вот как это выглядит примерно на данный момент: - if params[:param_A] && @statement_A %span.button.cancel_button{attribute: "val…
03 окт '12 в 21:35
4
ответа
Как думать "Скажи, не спрашивай" в этом простом примере?
Как бы вы придерживались принципа "говори, не спрашивай" (далее "принцип") в следующем простом сценарии? В игре Tetris у меня есть классы Board, BlockGrid и Piece, соответствующие следующему примеру: public class Board { private var fallingPiece:Pie…
07 фев '10 в 01:12
1
ответ
Разве шаблон фабрики не нарушает принцип "говори, не спрашивай"?
Процедурный кодекс получает информацию, затем принимает решения. Объектно-ориентированный код говорит объектам что-то делать. Алек Шарп Когда мы используем шаблон "Фабрика" , мы принимаем решение, основываясь на свойстве класса, кроме класса "фабрик…
26 июл '13 в 07:51
4
ответа
Скажи, не спрашивай и единую ответственность - делай новые вещи с данными в классе
У меня есть случай, когда "Скажи, не спрашивай", кажется, противоречит принципу "Единой ответственности". Я смотрел на другие дискуссии на эту тему, но пока не смог выработать наиболее подходящий объектно-ориентированный подход для этой ситуации. У …
22 май '12 в 20:34