Pytania otagowane jako builder-pattern

9
Dlaczego potrzebujemy klasy Builder podczas wdrażania wzorca Builder?
Widziałem wiele implementacji wzorca Builder (głównie w Javie). Wszystkie mają klasę encji (powiedzmy Personklasę) i klasę konstruktora PersonBuilder. Konstruktor „układa” różne pola i zwraca new Personargument z przekazanymi argumentami. Dlaczego jawnie potrzebujemy klasy konstruktora, zamiast umieszczać wszystkie metody konstruktora w Personsamej klasie? Na przykład: class Person { private String name; …

1
Czy „StringBuilder” jest aplikacją wzorca projektowego Builder?
Czy wzorzec „Konstruktora” ogranicza się do rozwiązania anty-wzorca „konstruktora teleskopowego”, czy też można powiedzieć, że dotyczy również bardziej ogólnego problemu skomplikowanego tworzenia niezmiennych obiektów? StringBuilderKlasy ma słowo „budowniczy” w nazwie, ale to nie ma nic, teleskopowe do czynienia z konstruktorów, to po prostu pomaga nam zebrać wszystkie dane, które musimy …





4
Java: Jak zaimplementować konstruktor kroków, dla którego kolejność seterów nie ma znaczenia?
Edycja: Chciałbym zaznaczyć, że to pytanie opisuje problem teoretyczny i jestem świadomy, że mogę użyć argumentów konstruktora dla parametrów obowiązkowych lub zgłosić wyjątek czasu wykonywania, jeśli interfejs API jest używany nieprawidłowo. Jednak szukam rozwiązania, które nie wymaga argumentów konstruktora ani sprawdzania czasu wykonywania. Wyobraź sobie, że masz taki Carinterfejs: public …

3
Czy warto używać konstruktorów i płynnych interfejsów z inicjatorami obiektów?
W Javie i C # można utworzyć obiekt z właściwościami, które można ustawić przy inicjalizacji, poprzez zdefiniowanie konstruktora za pomocą parametrów, zdefiniowanie każdej właściwości po skonstruowaniu obiektu lub użycie wzorca interfejsu konstruktora / płynu. Jednak C # 3 wprowadził inicjatory obiektów i kolekcji, co oznaczało, że wzorzec konstruktora był w …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.