2 回答
TA贡献1946条经验 获得超4个赞
有一种非常简单明了的模式,称为Builder Patternwhere方法,该方法基本上返回对当前对象的引用,因此,将方法调用彼此链接在一起,而不是将它们彼此链接在一起。
《四人帮》一书中描述的实际构建器模式有些冗长(为什么要创建一个构建器对象),而只是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中的外观。
添加回答
举报