Давайте назовем классы, которые предоставляют вам информацию о таблице TableInfo
objects
Я бы создал интерфейс IDBInfoWriter
с методом WriteDBInfo(TableInfo ti)
Затем реализация IDBInfoWriter
, скажем DBInfoFileWriter
, с FileWriter
в качестве частного члена. Каждый вызов WriteDBInfo
будет записывать все, что записано в файле
Наконец, объект DBInfoWalker
, который будет принимать список экземпляров TableInfo
и IDbInfoWriter
class DBInfoWalker
function new(TableInfo[] tis, IDBInfoWriter idbiw)
{...}
function process()
{
for each TableInfo ti in tis
{
idbiw.WriteDBInfo(ti);
}
}
Таким образом, вы можете
- Работайте с любым подмножеством
TableInfo
, которое вы хотите (допустим, вы хотите просто список TableInfo
, начинающийся с "S", передавайте только этот список в конструкторе DBInfoWalker
- Создайте столько стилей вывода для своей таблицыInfo, просто создайте правильную реализацию
IDBInfoWriter
(сеть, уникальный файл, несколько файлов и т. Д.)
Конечно, это только одна возможность:)
Удачи