def reset(): """ Установить словарь фабрик в первоначальное состояние. Используется для тестирования. Это не конструктор. В случае изменения списка фабрик, установленных по умолчанию, нужно изменять этот метод. """ FactorySelector._factories = { factory.getTypeString(): factory for factory in [WikiPageFactory(), HtmlPageFactory(), TextPageFactory(), SearchPageFactory()] } Application.onPageFactoryListChange(newfactory=None)
def removeFactory(typeString): """ Удаляет фабрику из словаря """ FactorySelector._factories.pop(typeString, None) Application.onPageFactoryListChange(newfactory=None)
def addFactory(newFactory): """ Добавить новую фабрику. При этом у фабрики может быть новый создаваемый тип страниц, в то же время фабрика может заменить существующую фабрику. """ FactorySelector._factories[newFactory.getTypeString()] = newFactory Application.onPageFactoryListChange(newfactory=newFactory)