антишаблон “грязного полиморфизма”

вам придется использовать лямбды со следующими now.json

{
    "version": 2,
    "builds": [
        { "src": "package.json", "use": "@now/next" },
        { "src": "lambda_file.js", "use": "@now/node"}
    ],
    "routes": [
        { "src": "api_route", "dest": "lambda_file.js"}
    ]
}
5
задан Joe Soul-bringer 3 April 2009 в 00:09
поделиться

2 ответа

Разве Вы не можете определить своего рода get_id метод так, чтобы идентификатор возвратил себя, объект возвращает идентификатор, и имя делает то, что это должно сделать для получения идентификатора? Затем можно всегда канонизировать что-либо, что Вы знаете, будет один из трех. Аналогично с get_name и get_object методами, если это необходимо.

То есть Вы определили неявный интерфейс ThingWhatHasAnID и сделали это утиным типом Вашего параметра функции.

Если я не пропускаю что-то, я звонил бы, этот антишаблон "упустил возможность создать абстракцию".

7
ответ дан 13 December 2019 в 19:36
поделиться

Почти каждый раз, когда Вы включаете класс объекта, это - подсказка, что поведение должно быть методом самого объекта. Отправка сообщения является полиморфной на основе получателя. В этом случае это должно быть что-то как:

def initialize starting_value
  @starting_id = starting_value.id
end

Определить id сделать безотносительно различного get_id_from_* методы раньше делали. Недопустимый случай типа уже повысит, потому что Вы получите NoMethodError.

Что касается того, что назвать это, я назвал бы его "процедурным программированием на языке OO".

4
ответ дан 13 December 2019 в 19:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: