Я пишу конфигурационную программу для своего собственного дистрибутива Linux.Конфигурация разбита на разделы: general, networking, session, etc.
- в которой группируются похожие параметры.Например, в общем разделе есть параметры компьютера name, description, workgroup, language
.
Я думаю, что каждый раздел должен быть представлен классом, и каждый параметр должен иметь соответствующее свойство (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).
Я знаю, что жесткий уровень представления кода в классах не очень хорошая идея ... Мне нужно что-то вроде шаблона проектирования, общегоидея / шаблон, как реализовать это, чтобы оно было качественным, простым в управлении и расширении.
Я собираюсь создать несколько внешних интерфейсов для этих классов (текст, графический интерфейс, веб), поэтому я не хочу, чтобы каждыйвремя повторить тот же код.
Я очень много думаю, но, к сожалению, у меня нет идеи, как это сделать, или у меня есть сомнения ...
Спасибо:)