是的,a.dateTimeObject.format() 违反了迪米特法则。应该将格式化日期的方法封装在日期对象中,不应该让其他对象直接调用日期对象的方法。
示例代码:
class DateTimeObject: def init(self, year, month, day): self.year = year self.month = month self.day = day
def format(self):
'''格式化日期'''
return f'{self.year}-{self.month}-{self.day}'
class A: def init(self, dateTimeObject): self.dateTimeObject = dateTimeObject
def showFormattedDate(self):
'''展示格式化后的日期'''
formattedDate = self.dateTimeObject.format()
print(formattedDate)
dateTimeObj = DateTimeObject(2021, 12, 31) a = A(dateTimeObj) a.showFormattedDate() #输出:2021-12-31