Сообщение Re[11]: Обязательный именованный параметр с проверкой при ко от 26.07.2023 14:03
Изменено 26.07.2023 14:32 ·
Re[11]: Обязательный именованный параметр с проверкой при ком
Здравствуйте, sergii.p, Вы писали:
SP>·>Это "вариант 1" у топик-стартера в первом сообщении и его мнение "плодить класс на каждый параметр это чересчур".
.
SP>у ТС класс занимал 10 строчек. Тут 3. Мне показалось что это основной критерий почему нельзя "плодить класс на каждый параметр".
Потому что ты смухлевал, удалив переводы строк и static метод для конструирования. А по сути ровно то же.
SP>·>Зачем ты это всё рассказал-то?
SP>ну ты ведь попросил, я рассказал.
Ну это уже было в стартовом сообщениии. А вопрос был об альтернативах.
SP>·>Кстати, вместо твоей колбасы с генериками давно можно просто писать record XType(int value){}.
SP>возможно. java — не мой основной язык. Если это работает, тем более идиома нового типа будет актуальна.
У этой идиомы и другие недостатки. Например, нет никакого способа запретить таки использовать один и тот же тип в разных параметрах. При копи-пастах код начнёт расползаться.
Было
кто-нибудь побыстрому накопипастил и получилось
и ищи баги опять...
Мой вариант с интерфейсом этим не страдает, т.к. новые методы в интерфейс нельзя копипастить.
SP>·>Это "вариант 1" у топик-стартера в первом сообщении и его мнение "плодить класс на каждый параметр это чересчур".
SP>у ТС класс занимал 10 строчек. Тут 3. Мне показалось что это основной критерий почему нельзя "плодить класс на каждый параметр".
Потому что ты смухлевал, удалив переводы строк и static метод для конструирования. А по сути ровно то же.
SP>·>Зачем ты это всё рассказал-то?
SP>ну ты ведь попросил, я рассказал.
Ну это уже было в стартовом сообщениии. А вопрос был об альтернативах.
SP>·>Кстати, вместо твоей колбасы с генериками давно можно просто писать record XType(int value){}.
SP>возможно. java — не мой основной язык. Если это работает, тем более идиома нового типа будет актуальна.
У этой идиомы и другие недостатки. Например, нет никакого способа запретить таки использовать один и тот же тип в разных параметрах. При копи-пастах код начнёт расползаться.
Было
Receipt transfer(AccountFrom from, AccountTo to, MoneyAmount amount, MoneyFee fee);кто-нибудь побыстрому накопипастил и получилось
Receipt transfer(AccountFrom from, AccountTo to, MoneyAmount amount, MoneyAmount discountAmount, MoneyFee fee);и ищи баги опять...
Мой вариант с интерфейсом этим не страдает, т.к. новые методы в интерфейс нельзя копипастить.
Re[11]: Обязательный именованный параметр с проверкой при ко
Здравствуйте, sergii.p, Вы писали:
SP>·>Это "вариант 1" у топик-стартера в первом сообщении и его мнение "плодить класс на каждый параметр это чересчур".
.
SP>у ТС класс занимал 10 строчек. Тут 3. Мне показалось что это основной критерий почему нельзя "плодить класс на каждый параметр".
Потому что ты смухлевал, удалив переводы строк и static метод для конструирования. А по сути ровно то же.
Ты предложил так
Можно было так:
Даже короче.
SP>·>Зачем ты это всё рассказал-то?
SP>ну ты ведь попросил, я рассказал.
Ну это уже было в стартовом сообщениии. А вопрос был об альтернативах.
SP>·>Кстати, вместо твоей колбасы с генериками давно можно просто писать record XType(int value){}.
SP>возможно. java — не мой основной язык. Если это работает, тем более идиома нового типа будет актуальна.
У этой идиомы и другие недостатки. Например, нет никакого способа запретить таки использовать один и тот же тип в разных параметрах. При копи-пастах код начнёт расползаться.
Было
кто-нибудь побыстрому накопипастил и получилось
и ищи баги опять...
Мой вариант с интерфейсом этим не страдает, т.к. новые методы в интерфейс нельзя копипастить.
SP>·>Это "вариант 1" у топик-стартера в первом сообщении и его мнение "плодить класс на каждый параметр это чересчур".
SP>у ТС класс занимал 10 строчек. Тут 3. Мне показалось что это основной критерий почему нельзя "плодить класс на каждый параметр".
Потому что ты смухлевал, удалив переводы строк и static метод для конструирования. А по сути ровно то же.
Ты предложил так
class XType extends NewType<Integer> {
XType(int val) { super(val); }
}Можно было так:
class XType { final int val;
XType(int val) { this.val=val; }
}Даже короче.
SP>·>Зачем ты это всё рассказал-то?
SP>ну ты ведь попросил, я рассказал.
Ну это уже было в стартовом сообщениии. А вопрос был об альтернативах.
SP>·>Кстати, вместо твоей колбасы с генериками давно можно просто писать record XType(int value){}.
SP>возможно. java — не мой основной язык. Если это работает, тем более идиома нового типа будет актуальна.
У этой идиомы и другие недостатки. Например, нет никакого способа запретить таки использовать один и тот же тип в разных параметрах. При копи-пастах код начнёт расползаться.
Было
Receipt transfer(AccountFrom from, AccountTo to, MoneyAmount amount, MoneyFee fee);кто-нибудь побыстрому накопипастил и получилось
Receipt transfer(AccountFrom from, AccountTo to, MoneyAmount amount, MoneyAmount discountAmount, MoneyFee fee);и ищи баги опять...
Мой вариант с интерфейсом этим не страдает, т.к. новые методы в интерфейс нельзя копипастить.