Wpis z mikrobloga

via Wykop Mobilny (Android)
  • 0
@VanQator: ten interfejs Builder to jedno wielkie xd. Interfejsów używasz jak chcesz mieć wiele różnych implementacji używanych w ten sam sposób. Tutaj metody buildera zwracają jako wynik ConcreteBuilder, więc i tak nie używasz tego w inny sposób. Jeszcze nie widziałem, żeby ktoś robił abstract buildera. Ten wzorzec służy do "ładnego" utworzenia jakiegoś obiektu konkretnej klasy, tutaj interfejs nie ma sensu. Co do samego buildera to w C++ najczęściej zwraca się
  • Odpowiedz
@Saly: Builder służy do tworzenia różnych obiektów tej samej klasy różniących się szczegółami, a powyższa implementacja buildera, to klasyczny tego przykład.
  • Odpowiedz
@VanQator: chodzi mi, że ten interfejs jest bez sensu. Mając taką sygnaturę: virtual ConcreteBuilder ProducePartC() const = 0; nie jesteś w stanie użyć tego interfejsu dla innego obiektu, niż ConcreteBuilder, bo pierwsze wywołanie sprawi, że będziemy operować już na ConcreteBuilderze a nie Buildera. Jak interfejs ma zastosowanie dla tylko jednej klasy to lepiej go usunąć.
  • Odpowiedz
@VanQator: nie wiem czemu ma służyć ten cudak i po co się to stosuje bo nie wgłębiałem się nigdy za bardzo w programowanie obiektowe za to wgłębiałem się w sam język programowania i wydaje mi się, że w GetProduct() masz memory leak. ja wiem ze to tylko przykład ale warto wyrobić jakieś nawyki ( ͡° ͜ʖ ͡°)
  • Odpowiedz