Skip to content

Commit 14e0307

Browse files
committed
set method is better than direct change of the attribute
1 parent 70aaea7 commit 14e0307

1 file changed

Lines changed: 10 additions & 7 deletions

File tree

builder.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,18 @@
1111
class Director(object):
1212

1313
def __init__(self):
14-
self.builder = None
14+
self._builder = None
15+
16+
def set_builder(self, builder):
17+
self._builder = builder
1518

1619
def construct_building(self):
17-
self.builder.new_building()
18-
self.builder.build_floor()
19-
self.builder.build_size()
20+
self._builder.new_building()
21+
self._builder.build_floor()
22+
self._builder.build_size()
2023

2124
def get_building(self):
22-
return self.builder.building
25+
return self._builder.building
2326

2427

2528
# Abstract Builder
@@ -65,11 +68,11 @@ def __repr__(self):
6568
# Client
6669
if __name__ == "__main__":
6770
director = Director()
68-
director.builder = BuilderHouse()
71+
director.set_builder(BuilderHouse())
6972
director.construct_building()
7073
building = director.get_building()
7174
print(building)
72-
director.builder = BuilderFlat()
75+
director.set_builder(BuilderFlat())
7376
director.construct_building()
7477
building = director.get_building()
7578
print(building)

0 commit comments

Comments
 (0)