Skip to main content
 首页 » 编程设计

python如何构造这个类

2025年05月04日22sxdcgaq8080

我在决定构建某个类的最佳方式时遇到了一些麻烦。该类将接受一些字符串作为设置,方法将根据设置创建不同类型的图表....

例如。可以这样称呼...

c = ChartEngine(type='line', labels='foo bar', data='1, 2', data2='3, 4') 
chart = c.make_chart() 

IDK 如果最好将其构造为一个类,或者只是一个将调用同一模块中其他函数的函数...IDK 如果我应该将逻辑放在 __init__ 函数中将设置调用 make_chart 函数,或者如果有其他方法。

def __init__(*settings*): 
    self.type = type 
    self.labels = labels 
    self.data = data 
    .... 
 
make_chart(self.type, self.labels, self.data): 
    if self.type == "line": 
        line_chart(settings) 
    elif self.type == "bar": 
        bar_chart(settings) 
    ... 

你会如何构建这样的类?

请您参考如下方法:

将测试用作设计工具。为您想要的一个微不足道的最小功能编写测试。让它失败,然后编写使其通过所需的最少代码。然后用另一个特性编写另一个测试,让它失败等等。使用此开发周期 (TDD),您可以从用户的角度进行设计,并对您的实现实现适当的封装和抽象。您可能想了解 pytest模块。

乍一看,我会说您计划的类(class)会了解太多不同的东西。阅读有关 SRP 和其他 SOLID 原则的信息,以帮助您着手解决这个问题。最重要的是,只实现您现在需要的,仅此而已。

最后,ChartEngine 看起来像是抽象工厂模式的用例,很难用优雅的代码实现。从最简单的用例开始,尽早重构。