1. Trang chủ
  2. » Công Nghệ Thông Tin

Software design: Lecture 33 - Sheraz Pervaiz

28 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 28
Dung lượng 515,27 KB

Nội dung

Software design - Lecture 33. The main topics covered in this chapter include: builder design pattern; motivation for builder design pattern; intent of builder design pattern; builder pattern; class diagram; sequence diagram; solution in builder design pattern;...

1 Software Design Lecture : 33 Builder Design Pattern Motivation for Builder Design  Pattern  In  general,  object  construction  details  such  as  instantiating  and  initializing  the  components  that  make  up the object are kept within the object, often as part of  its constructor  This  type  of  design  closely  ties  the  object  construction  process with the components that make up the object Motivation Continue…  This  approach  is  suitable  as  long  as  the  object  under  construction is simple and the object construction process  is  definite  and  always  produces  the  same  representation  of the object Motivation  This design may not be effective when the object being created  is  complex  and  the  series  of  steps  constituting  the  object  creation  process  can  be  implemented  in  different  ways  producing different representations of the object.   Different  implementations  of  the  construction  process  are  all  kept  within  the  object,  the  object  can  become  bulky  (construction bloat) and less modular. Subsequently, adding a  new  implementation  or  making  changes  to  an  existing  implementation requires changes to the existing code Intent of Builder Design Pattern Separate  the  construction  of  a  complex  object  from  its  representation  so  that  the  same  construction  process  different representations can  create  Builder Pattern  Using the Builder pattern, the process of constructing such an  object can be designed more effectively.   The Builder pattern suggests moving the construction logic out  of the object class to a separate class referred to as      a builder class  There  can  be  more  than  one  such  builder  class  each  with  different  implementation  for  the  series  of  steps  to  construct  the object Builder Pattern  Each  such  builder  implementation  results  in  a  different  representation of the object.   This type of separation reduces the object size  The object construction process becomes independent of  the  components  that  make  up  the  object.  This  provides  more control over the object construction process Class Diagram In terms of implementation, each of the different  steps in the construction process can be declared  as  methods  of  a  common  interface  to  be  implemented  by  different  concrete  builders  as  shown in the class diagram in next slide 10 14 Builder Design Pattern Different  client  objects  can  make  use  of  the  Director object to create the required object and  once  the  object  is  constructed,  the  client  object  can directly request from the builder the fully    constructed object 15 Builder Design Pattern A  new  method  getObject  can  be  declared  in  the  common Builder interface to be implemented by  different concrete builders 16 Improvements in Previous Design The  new  design  eliminates  the  need  for  a  client  object  to  deal  with  the  methods  constituting  the  object construction process and encapsulates the  details of how the object is constructed from the  client 17 Class Diagram of Improved Version 18 19 Interaction Flow i The  client  object  creates  instances  of  an  appropriate  concrete  Builder  implementer  and  the  Director.  The  client  may use a factory for creating an appropriate Builder object ii   The  client  associates  the  Builder  object  with  the  Director  object iii   The  client  invokes  the  build  method  on  the  Director  instance to begin the object creation process. Internally, the  Director  invokes  different  Builder  methods  required  to  construct the final object iv  Once the object creation is completed, the client invokes the  getObject method on the concrete Builder instance to get the  newly created object 20 Sequence Diagram 21 Applicability Builder patterns is useful in a large system Builder patterns fits when different variations of  an  object  may  need  to  be  created  and  the  inheritance into those objects is well­defined 22 Example of Builder Class 23 Consider  construction  of  a  home,  Home  is  the  final  end  product  (object)  that  is  to  be  returned  as the  output  of  the  construction  process. It will  have  many  steps,  like  basement  construction,  wall  construction  and  so  on  roof  construction.  Finally  the  whole  home  object  is  returned.  Here  using  the  same  process  you  can  build  houses  with different properties 24 25 Java Code in Eclipse 26 27 Comparison of Creational  Patterns 28

Ngày đăng: 05/07/2022, 14:06