Python:具有复杂模型交互的MVC实现

时间:2018-03-12 15:10:02

标签: python macos design-patterns model-view-controller

我正在开发一个小型python(3.6.4)应用程序(用于mac os),而且我在实现控制器/模型关系方面遇到了一些麻烦。我是python和MVC的新手(以及一般的设计模式)。

该程序创建可写入磁带的zip文件。使用了三个文件夹:

  • input_folder - 用户可以将项目文件夹复制到。
  • process_folder - 将项目复制到程序并由程序处理的位置。
  • output_folder - 包含程序创建的带zip文件的项目。

该计划的基本步骤:

  1. 程序监视"项目文件夹"的输入文件夹。 Project文件夹包含一个或多个" Episode文件夹"每个都有一些文件。
  2. 程序检查项目文件夹的名称是否存在于数据库中(用户负责添加项目名称),并在进程文件夹中使用格式化名称(lowercase_without_spaces)创建匹配的Project文件夹。
  3. 还会检查每集的剧集文件夹。 (在这种情况下,如果他们之前没有存档)
  4. 一旦它们包含的文件完整,就会将剧集从输入文件夹复制到进程文件夹。 (即Filesize在3秒内保持不变)
  5. 对于每个项目,剧集从流程文件夹压缩并移动到输出文件夹中相应的Project文件夹。
  6. 我有一个Project和Episode类。这两个类都包含输入文件夹中的文件夹名称以及进程文件夹中文件夹名称所基于的格式化名称。

    每个Project对象都包含Episode对象列表,最终每个Episode对象都包含一个File对象列表。 (可能非常糟糕......)

    目前我有一个控制器,负责项目内的项目和剧集,因此控制仍然在一个中心位置。例如:

    project.add_episodes(Episode('sometitle'))
    project.process_episodes()
    

    几个问题:

    • 我的单一控制器是否采用正确的方法来执行此操作?
    • 我的Project / Episode数据模型有什么好的设计模式?

    任何帮助/建议都会很棒!

0 个答案:

没有答案