【问题标题】:Using two objects in the same method, what is the best implementation?在同一个方法中使用两个对象,最好的实现是什么?
【发布时间】:2021-08-21 17:49:24
【问题描述】:

我是面向对象设计的新手。在阅读时,我想到了一个问题,我无法决定使用哪种设计模式(或者我应该完全使用它)。

例如,在图书馆,图书的到期日期取决于图书和人员。如果这本书很少见,到期日应该比其他书少,或者如果这个人是常客,到期日应该更长。那么这个功能访问两个类的属性,在哪里或者如何添加它会更正确?

我想到了不同的场景,将利弊解释如下:

  • 创建一个名为到期日期的接口并确保两个类(Book 和 Customer)都实现它。但是我在哪里可以合并这样的两个日期?例如,图书的到期日为 2 周,由于客户的特性增加了 1 周,那么 3 周的结果应该出现在哪里?

  • 创建一个单独的类并将两个对象的实例作为参数发送给一个方法。在这种情况下,为每个要添加的功能创建一个新类(本例中的到期日计算)似乎是一项非常繁琐的任务。

【问题讨论】:

    标签: class object oop design-patterns


    【解决方案1】:

    你可以试试这个,

    在这里,我在 Book 类中创建了一个方法,该方法根据图书到期日和客户到期日计算图书的总到期日。

    class Customer:
        def __init__(self):
            self.due_date = 1 #week
    
    
    class Book:
        def __init__(self):
            self.due_date = 2 #weeks
            self.customer = Customer()
    
        def due_date_of_the_book(self):
            var = self.due_date + self.customer.due_date
            print(var)
    
    
    obj = Book()
    obj.due_date_of_the_book()
    

    => 3

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-01
      • 1970-01-01
      • 2019-07-15
      • 2020-01-10
      相关资源
      最近更新 更多