Запитання з тегом «method-chaining»

5
Мета "повернення себе" з класового методу?
Я натрапив на щось подібне у проекті з відкритим кодом. Методи, що змінюють атрибути екземпляра, повертають посилання на екземпляр. Яке призначення цієї конструкції? class Foo(object): def __init__(self): self.myattr = 0 def bar(self): self.myattr += 1 return self

8
Чи використовую я ланцюжок методів, я повторно використовую об'єкт чи створюю його?
При використанні методу ланцюга типу: var car = new Car().OfBrand(Brand.Ford).OfModel(12345).PaintedIn(Color.Silver).Create(); можуть бути два підходи: Використовуйте повторно той самий об’єкт, як цей: public Car PaintedIn(Color color) { this.Color = color; return this; } Створюйте новий тип типу Carна кожному кроці, наприклад: public Car PaintedIn(Color color) { var car = new Car(this); …

4
Як називається ідіома, що використовує метод ланцюжка для побудови об'єкта?
Я часто використовую шаблон, коли я використовую метод ланцюга для установки об'єкта, подібного до Builderабо Prototypeшаблону, але не створюю нових об'єктів при кожному виклику методу, замість того, щоб змінювати вихідний об'єкт. Приклад: new Menu().withItem("Eggs").withItem("Hash Browns").withStyle("Diner"); Цікаво, чи існує назва цього шаблону і чи вважається він антидіаграмою, адже він може читати …

7
Проблема стилю кодування: Чи повинні ми мати функції, які беруть параметр, змінюють його, а потім ВЗАЄМО цей параметр?
У мене з товаришем трохи дискутують про те, чи є ці дві практики лише двома сторонами однієї монети, чи чи справді краща. У нас є функція, яка приймає параметр, заповнює його член, а потім повертає його: Item predictPrice(Item item) Я вважаю, що оскільки він працює над тим самим об’єктом, який …

7
Функція повертає лише незмінний параметр, марний?
Я щойно знайшов цю функцію в проекті, над яким я працюю: -- Just returns the text unchanged. -- Note: <text> may be nil, function must return nil in that case! function Widget:wtr(text) return text end Надто сумно, що кодер більше не працює в компанії. Чому можна зробити функцію, яка нічого …

1
Чи є ланцюгові методи, для яких потрібен лише один параметр на метод, еквівалентний кришці?
Останнім часом я бавляюся з Рубі, і мені стало цікаво, чи в чистих об'єктно-орієнтованих мовах (і навіть тих, які не є чистими) виготовлення методів, які беруть лише один параметр, а потім зв'язані між собою, еквівалентно закріпленню в мовах з функціоналом стиль? Якщо ні, то чому б і ні? Буду вдячний …

4
Чи існують якісь фактичні недоліки в ланцюжку самореференційних методів?
Нещодавно я запропонував метод певного класу реалізувати для певного класу в певному проекті, щоб можна було покращити читабельність коду. Я отримав "вільний інтерфейс не повинен бути реалізований просто для зручності, а для семантики", і моя пропозиція була знята. Я відповів, що не пропоную вільний інтерфейс, а метод прив'язування себе (обидва …

4
Коли метод класу повинен повернути той самий екземпляр після зміни себе?
У мене є клас, який має три методи A(), B()і C(). Ці методи змінюють власний екземпляр. Хоча методи повинні повертати екземпляр, коли екземпляр є окремою копією (так само Clone()), я отримав вільний вибір повернути voidабо той самий екземпляр ( return this;), коли змінював той самий екземпляр у методі і не …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.