我想使用 OOP/OOD 作为一个小项目的练习,但我经常发现自己在编码时使用了一种过程方法。我将 Python 与 Flask(Web 框架)结合使用
本质上,我的应用程序是一种蜘蛛,可以读取新电影发布的 rss 提要。对于每个新电影发行,它使用 imdb 链接从两个不同的 Web 服务(imdbapi 和 TMDb)收集有关情节、年份、类型、海报和类似信息的信息。如果首选服务无法提供信息,则使用其他服务。最后将所有信息保存在数据库中。然后我使用 Flask 在网站上展示信息
我现在已经创建了一个 Spider 类。它包含以下方法(为清楚起见已删除代码):
class Spider():
""" Spider Class """
def __init__(self, rssfeed):
def run_update(self):
movie_list = self.get_entries_from_feed()
self.get_imdb_json(movie_list)
def get_entries_from_feed(self):
""" reads an rss feed and return a list of lists with imdb id, title, and added date time """
def get_imdb_json(self, movie_list):
""" get json data from imdbapi based on list with imdb id"""
if not in db:
save_to_db
def save_to_db(self, key, nzb_title, added, data):
""" save entry to db from json data"""
“问题”是我使用run_update()方法以程序方式执行所有步骤。我也发现设计不灵活。例如,如果我无法获得一项服务的电影信息,我想尝试另一项服务,但这在当前格式中实现起来并不容易。
我想到的是创建一个 Movie 类,代表在 rssfeed 中找到的每部电影。也许还为我用于收集有关每部电影、imdbapi 和 TMDb 的信息的每个服务创建类?
那么,您将如何以 OOP/OOD 方式设计和设计这样的应用程序?当我们超出教科书中使用的简单示例(如汽车、书籍、水果等)时,我发现识别类有点困难。