русский
Germany.ruForen → Архив Досок→ Programmierung

Абасс... обсудите рахитекурту

3762  1 2 3 4 5 6 7 8 alle
alex445 патриот19.05.24 19:39
NEW 19.05.24 19:39 
in Antwort anly 19.05.24 19:15, Zuletzt geändert 19.05.24 19:48 (alex445)

Я предложил предложить своё предложение для этой "простейшей задачи". Никто не захотел. Напомню задачу:


  1. текущее и максимальное значения одного параметра разнесены на два класса, но т.к. это один параметр, то они связаны - текущее зависит от максимального (текущее не может быть больше максимального), но не наоборот
  2. для каждого значения своя валидация - с учётом первого пункта связности двух параметров


Разнесены на 2 класса, т.к. составной параметр построен на базе простого, состоящего из одного значения - использует его инфраструктуру (поля, свойства, методы и т.д.) и валидацию. Всё просто. Не какое-нибудь многостраничное техзадание. Можно на собесах этим мучить. Типа задачка на полчаса. От силы час. Два класса, два свойства - смотрите, не запутайтесь, "сеньёры и ценные специалисты с ниипацо стажем". )))

#41 
AlexNek патриот19.05.24 20:44
AlexNek
NEW 19.05.24 20:44 
in Antwort alex445 19.05.24 19:39

А в чём то сейчас проблема? Как я понял подходящее решение уже найдено.


Кстати, текущее определение задачи вообще непонятно что. Если бы не помнил, что было раньше вообще бы ничего не понял смущ

#42 
AlexNek патриот19.05.24 20:48
AlexNek
NEW 19.05.24 20:48 
in Antwort alex445 19.05.24 19:39
Разнесены на 2 класса, т.к. составной параметр построен на базе простого... разнесены на два класса, но т.к. это один параметр, то они связаны

Единственный вопрос - нафига разнесены?


#43 
alex445 патриот19.05.24 21:13
NEW 19.05.24 21:13 
in Antwort AlexNek 19.05.24 20:48, Zuletzt geändert 19.05.24 21:15 (alex445)
Единственный вопрос - нафига разнесены?

Я уже 10 раз написал - функционал максимального значения у составного параметра точно такой же, как просто значения у простого параметра. Т.е. в составном простое значение используется как максимальное, и добавлено текущее значение.


Ребята, что с вами, это просто два жалких класса с парой куцых свойств на двоих же. Чего вы их так испугались?.. Ну хорошо, вам не нравится наследование. Тогда что? В нашем ООПешном загончике не так много вариантов для комбинирования - наследование, включение, пачка статических методов... Я что-то важное упустил?


Может, будем городить интерфейсы или фабрику фабрик? Два-то класса это слишком сложно, а вот инжекция фабрики на интерфейсах - это пахнет месяцем мозгового штурма, километров тестов, и всё это на сеньёрских зарплатах. ))

#44 
AlexNek патриот19.05.24 21:17
AlexNek
NEW 19.05.24 21:17 
in Antwort alex445 19.05.24 21:13
функционал максимального значения у составного параметра точно такой же, как просто значения у простого параметра

Это как бы не аргумент, особенно когда в составном простое значение используется как максимальное

#45 
AlexNek патриот19.05.24 21:52
AlexNek
NEW 19.05.24 21:52 
in Antwort alex445 19.05.24 21:13
функционал максимального значения у составного параметра точно такой же, как просто значения у простого параметра

Предположим, что нам это важно, тогда для любого параметра должен быть объект

public double CurrentValue { get; set; }
public double MaxValue { get; set; }

Так что

если у нас есть параметр1 Value, то он должен иметь CurrentValue и MaxValue

и есть параметр2 MaxValue, то и он должен иметь CurrentValue и MaxValue


В данном случае подобного не наблюдается.

#46 
Срыв покровов патриот19.05.24 22:58
NEW 19.05.24 22:58 
in Antwort alex445 19.05.24 19:39

Вангую, что такого есть какой-нибудь пэттерн типа Subscriber или Notifier.

#47 
alex445 патриот20.05.24 01:37
NEW 20.05.24 01:37 
in Antwort AlexNek 19.05.24 21:52
функционал максимального значения у составного параметра точно такой же, как просто значения у простого параметра

Предположим, что нам это важно, тогда для любого параметра должен быть объект

public double CurrentValue { get; set; }
public double MaxValue { get; set; }

Так что

если у нас есть параметр1 Value, то он должен иметь CurrentValue и MaxValue

и есть параметр2 MaxValue, то и он должен иметь CurrentValue и MaxValue

В данном случае подобного не наблюдается.

У нас есть просто параметры, которые относительно постоянны (в пределах определённого времени), и быстро изменяющиеся параметры, у которых значение может быстро изменяться между нулём и определённым значением - эти последние я называю составными, т.к. состоят из текущего и этого определённого. Это определённое значение не есть максимальное значение вообще, т.к. оно тоже может изменяться, но не так быстро, как текущее, а так же, как и значение обычного параметра. Но для удобства я называю его максимальным. А чтобы использовать общий класс (с общей функциональностью) для этого значения, я называю его MaxValue и в классе обычного параметра.


Я бы мог поменять MaxValue на просто Value - тогда название значения в обычном параметре стало бы более осмысленным, но в составном - менее, т.к. CurrentValue меняется от 0 до Value. Но тут либо то, либо другое - где-то название будет не очень соответствовать.


Суть-то не в названиях, а в реализации.

#48 
alex445 патриот20.05.24 01:41
NEW 20.05.24 01:41 
in Antwort Срыв покровов 19.05.24 22:58
Вангую, что такого есть какой-нибудь пэттерн типа Subscriber или Notifier.

"Ты чё умничаешь, ты пальцем покажи!"


А этот паттерн проще, чем мои пару десятков строчек, из которых треть - скобки?

#49 
AlexNek патриот20.05.24 11:15
AlexNek
NEW 20.05.24 11:15 
in Antwort alex445 20.05.24 01:37
У нас есть просто параметры, которые относительно постоянны (в пределах определённого времени), и быстро изменяющиеся параметры

Опять что то не из той оперы. Это скорее к расположению элементов ввода. Что то еще вы батенька скрываете спок


Я бы мог поменять MaxValue на просто Value - тогда название значения в обычном параметре стало бы более осмысленным, но в составном - менее

Это сразу говорит о том, что что то не в порядке.


Суть-то не в названиях, а в реализации.

реализация дело вторичное, главное "модель системы".

#50 
AlexNek патриот20.05.24 11:18
AlexNek
NEW 20.05.24 11:18 
in Antwort alex445 20.05.24 01:41

А отчего, кстати у Param MaxValue отсуствует MaxValue смущ

#51 
alex445 патриот20.05.24 11:32
NEW 20.05.24 11:32 
in Antwort AlexNek 20.05.24 11:15, Zuletzt geändert 20.05.24 11:36 (alex445)
У нас есть просто параметры, которые относительно постоянны (в пределах определённого времени), и быстро изменяющиеся параметры
Опять что то не из той оперы. Это скорее к расположению элементов ввода. Что то еще вы батенька скрываете спок

Это не элементы ввода, а элементы отображения. Есть параметры, которые относительно постоянные и описываются одним числом, а есть которые изменяются быстро (расходуются и пополняются) - им нужно два числа - максимальное значение и текущее.


Например, скорость обозначается параметром с одним числом (текущая скорость), а топливо - параметром с двумя числами (макс. топлива и текущий объём). Чтобы не делать два совсем разных типа параметров, сделал базовый тип с одним значением, и второй унаследовал от него, добавив текущее значение.

#52 
alex445 патриот20.05.24 11:37
20.05.24 11:37 
in Antwort AlexNek 20.05.24 11:18, Zuletzt geändert 20.05.24 11:40 (alex445)
А отчего, кстати у Param MaxValue отсуствует MaxValue

Где отсутствует? У меня присутствует. Это у ParamVolatile отсутствует поле maxValue, т.к. используется поле базового класса через свойство базового класса. У ParamVolatile свойство MaxValue это обёртка над базовым одноимённым свойством.

#53 
AlexNek патриот20.05.24 11:45
AlexNek
NEW 20.05.24 11:45 
in Antwort alex445 20.05.24 11:37
у Param MaxValue отсуствует MaxValue ... Где отсутствует? У меня присутствует.


"Ты чё умничаешь, ты пальцем покажи!" бебе

#54 
AlexNek патриот20.05.24 11:48
AlexNek
NEW 20.05.24 11:48 
in Antwort alex445 20.05.24 11:32
Чтобы не делать два совсем разных типа параметров, сделал базовый тип

во это как раз то, что дедушка Мюллер и должен был узнать в подвале спок


Есть набор различных параметров и им нужен базовый тип.

#55 
alex445 патриот20.05.24 12:15
NEW 20.05.24 12:15 
in Antwort AlexNek 20.05.24 11:48
Есть набор различных параметров и им нужен базовый тип.

Ну вот я и сделал. Только базовый тип у меня не бесполезный абстрактный, а полностью функциональный, подходящий для параметров с одним значением.

#56 
alex445 патриот20.05.24 12:18
NEW 20.05.24 12:18 
in Antwort AlexNek 20.05.24 11:45
у Param MaxValue отсуствует MaxValue ... Где отсутствует? У меня присутствует.

"Ты чё умничаешь, ты пальцем покажи!" бебе

Пройдите по моей ссылке и попробуйте отследить выполнение кода, если присвоить свойству MaxValue объекта ParamVolatile какое-нибудь значение. Обратите внимание на


base.MaxValue = value;
#57 
AlexNek патриот20.05.24 12:21
AlexNek
NEW 20.05.24 12:21 
in Antwort alex445 20.05.24 12:15
Только базовый тип у меня не бесполезный абстрактный

Это уже следующий этап, тогда.


Пока что видно что всем параметрам нужно "double Value"

#58 
AlexNek патриот20.05.24 12:22
AlexNek
NEW 20.05.24 12:22 
in Antwort alex445 20.05.24 12:18
объекта ParamVolatile

речь об объекте Param

#59 
alex445 патриот20.05.24 13:20
NEW 20.05.24 13:20 
in Antwort AlexNek 20.05.24 12:21
Только базовый тип у меня не бесполезный абстрактный

Это уже следующий этап, тогда.

Пока что видно что всем параметрам нужно "double Value"

Переименуем MaxValue в Value в обоих классах. Лучше стало?

#60 
1 2 3 4 5 6 7 8 alle