我只是在设计应用程序,不确定我是否正确理解SOLID和OOP。类应该做一件事情并且做得很好,但另一方面,它们应该代表我们所使用的真实对象。
就我而言,我对数据集进行特征提取,然后进行机器学习分析。我假设我可以创建三个类
- FeatureExtractor
- 数据集
- 分析仪
但是FeatureExtractor类不代表任何东西,它的作用使它比类更像是一个例程。它只有一个将要使用的函数:extract_features()
创建不代表一件事而是做一件事的类是否正确?
编辑:不确定是否重要,但我正在使用Python
并且如果extract_features()看起来像这样:是否值得创建一个特殊的类来保存该方法?
def extract_features(df):
extr = PhrasesExtractor()
extr.build_vocabulary(df["Text"].tolist())
sent = SentimentAnalyser()
sent.load()
df = add_features(df, extr.features)
df = mark_features(df, extr.extract_features)
df = drop_infrequent_features(df)
df = another_processing1(df)
df = another_processing2(df)
df = another_processing3(df)
df = set_sentiment(df, sent.get_sentiment)
return df