我正在为自己的 Linux 发行版编写配置程序。配置分为几个部分:general、networking、session 等
- 将相似的选项分组。例如。在常规部分有计算机名称、描述、工作组、语言
选项。
我认为每个部分都应该由类来呈现,每个选项都应该有相应的属性(getter 和 setter)。
此外,如果有测试给定选项是否启用的功能(即系统是否满足此选项的要求),那么对于泛化来说会很好,即:
class General(object):
@property
def name(self):
return self.get_computer_name()
@name.setter
def name(self, name):
self.set_computer_name(name)
def is_option_enabled(self, option):
return True_or_False
此外,我还需要这些选项(以及部分)与相应的翻译名称和描述(使用 gettext)链接在一起。
我知道在类中硬编码表示层不是个好主意... 我需要诸如设计模式之类的东西,以及如何实现它的总体思路/模板,以便它是高质量的、易于管理和扩展的。
我将为这些类(文本、图形用户界面、网络)创建多个前端,因此我不想每次都重复相同的代码。
我很努力地思考,但不幸的是我不知道该怎么做或者有一些疑问......
谢谢你:)
最佳答案
我会说您的项目看起来雄心勃勃。
并且对每个部分使用一个类对我来说似乎不是一个好主意,因为它基本上意味着添加、删除或修改部分将需要更改代码,它不是动态的,并且意味着发布新版本与前一个不兼容。
如果每个部分都以相同的方式处理会更好。
对于核心,我认为您需要:
- 带有可接受部分和选项声明的 protected 文件
- 有权访问此类文件的配置持有者。
- 用于配置文件的加载器:
- 读取/解析您的配置文件。
- 构建您的配置容器。
- 命令 可以访问您的配置持有者:
- 实现此访问的抽象
BaseCommand
, - 每个实际命令的子类:
Get
、Add
、Remove
。
- 实现此访问的抽象
然后每个前端将只是这些命令的接口(interface)。
关于python - 在 Python 中对某些操作进行分组的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8999943/