有一种非常简单明了的模式,称为
BuilderPatternwhere方法,该方法基本上返回对当前对象的引用,因此,它们不是在彼此之间链接方法调用,而是在对象引用上链接。
《四人帮》一书中描述的实际构建器模式有些冗长(为什么要创建构建器对象),而只是
self从每个返回一个引用以
setXXX()进行干净的方法链接。
在Python中可能看起来像这样:
class Person: def setName(self, name): self.name = name return self ## this is what makes this work def setAge(self, age): self.age = age; return self; def setSSN(self, ssn): self.ssn = ssn return self
您可以这样创建一个人:
p = Person()p.setName("Hunter") .setAge(24) .setSSN("111-22-3333")请记住,
p.a().b().c()由于Python不会忽略空格,因此您实际上必须将方法与它们的接触联系起来。
正如@MaciejGol在注释中指出的那样,您可以将其分配为
p与空白链接:
p = ( Person().setName('Hunter').setAge(24).setSSN('111-22-3333'))我不能说这是否是Python的 最佳 样式/想法,但这是它在Java中的外观。



