{"id":2108,"date":"2023-11-10T15:10:41","date_gmt":"2023-11-10T07:10:41","guid":{"rendered":""},"modified":"2023-11-10T15:10:41","modified_gmt":"2023-11-10T07:10:41","slug":"Python\u5efa\u9020\u8005\u6a21\u5f0f","status":"publish","type":"post","link":"https:\/\/bianchenghao6.com\/2108.html","title":{"rendered":"Python\u5efa\u9020\u8005\u6a21\u5f0f"},"content":{"rendered":"
\n
Python\u5efa\u9020\u8005\u6a21\u5f0f\u8be6\u7ec6\u64cd\u4f5c\u6559\u7a0b<\/span>\n <\/div>\n \u5b83\u5728\u7c7b\u521b\u5efa\u7684\u6307\u5b9a\u5bf9\u8c61\u7684\u6784\u9020\u548c\u8868\u793a\u4e4b\u95f4\u63d0\u4f9b\u4e86\u6e05\u6670\u7684\u5206\u9694\u548c\u552f\u4e00\u7684\u5c42\u3002<\/span> <\/body>\u5efa\u9020\u8005\u6a21\u5f0f\u7684\u4f18\u70b9<\/h3>\n
\n \u5b83\u53ef\u4ee5\u66f4\u597d\u5730\u63a7\u5236\u6240\u521b\u5efa\u6a21\u5f0f\u7684\u6784\u5efa\u8fc7\u7a0b\u3002<\/span>
\n \u5b83\u63d0\u4f9b\u4e86\u66f4\u6539\u5bf9\u8c61\u5185\u90e8\u8868\u793a\u7684\u5b8c\u7f8e\u65b9\u6848\u3002<\/span> <\/p>\n\u5982\u4f55\u5b9e\u73b0\u5efa\u9020\u8005\u6a21\u5f0f\uff1f<\/h2>\n
# Filename : example.py<\/span>
# Copyright : 2020 By Bianchenghao6<\/span>
# Author by : bianchenghao6.com<\/span>
# Date : 2020-08-22<\/span>
class <\/span>Director:
__builder = None
def <\/span>setBuilder(self, builder):
self.__builder = builder
def <\/span>getCar(self):
car = Car()
# First goes the body
<\/span> body = self.__builder.getBody<\/span>()
car.setBody<\/span>(body)
# Then engine
<\/span> engine = self.__builder.getEngine<\/span>()
car.setEngine<\/span>(engine)
# and <\/span>four wheels
<\/span> i = 0
while <\/span>i < 4:
wheel = self.__builder.getWheel<\/span>()
car.attachWheel<\/span>(wheel)
i += 1
return <\/span>car
# The whole product
<\/span> class <\/span>Car:
def <\/span>__init__(self):
self.__wheels = list<\/span>()
self.__engine = None
self.__body = None
def <\/span>setBody(self, body):
self.__body = body
def <\/span>attachWheel(self, wheel):
self.__wheels.append<\/span>(wheel)
def <\/span>setEngine(self, engine):
self.__engine = engine
def <\/span>specification(self):
print(\"body: %s\"<\/span> % self.__body.shape)
print(\"engine horsepower: %d\"<\/span> % self.__engine.horsepower)
print(\"tire size: %d\"<\/span> % self.__wheels[0].size)
class <\/span>Builder:
def <\/span>getWheel(self): pass
def <\/span>getEngine(self): pass
def <\/span>getBody(self): pass
class <\/span>JeepBuilder(Builder):
def <\/span>getWheel(self):
wheel = Wheel()
wheel.size = 22
return <\/span>wheel
def <\/span>getEngine(self):
engine = Engine()
engine.horsepower = 400
return <\/span>engine
def <\/span>getBody(self):
body = Body()
body.shape = \"SUV\"<\/span>
return <\/span>body
# Car parts
<\/span> class <\/span>Wheel:
size = None
class <\/span>Engine:
horsepower = None
class <\/span>Body:
shape = None
def <\/span>main():
jeepBuilder = JeepBuilder()
director = Director()
# Build Jeep
<\/span> print(\"Jeep\"<\/span>)
director.setBuilder<\/span>(jeepBuilder)
jeep = director.getCar<\/span>()
jeep.specification<\/span>()
print(\"\"<\/span>)
if <\/span>__name__ == \"__main__\"<\/span>:
main()
<\/span><\/code><\/pre>\n<\/p><\/div>\n\u8f93\u51fa<\/h3>\n
# Filename : example.py<\/span>
# Copyright : 2020 By Bianchenghao6<\/span>
# Author by : bianchenghao6.com<\/span>
# Date : 2020-08-22<\/span>
Jeep
body: SUV
engine horsepower: 400
tire size: 22
<\/span><\/code><\/pre>\n<\/p><\/div>\n
\n<\/html><\/p>\n","protected":false},"excerpt":{"rendered":"Python\u5efa\u9020\u8005\u6a21\u5f0fzh-cn","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[164],"tags":[],"class_list":["post-2108","post","type-post","status-publish","format-standard","hentry","category-python-sjms"],"_links":{"self":[{"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/posts\/2108"}],"collection":[{"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/comments?post=2108"}],"version-history":[{"count":0,"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/posts\/2108\/revisions"}],"wp:attachment":[{"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/media?parent=2108"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/categories?post=2108"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/tags?post=2108"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}