2016-04-27 3 views
0

Я готовлю проект C# .Net для нашей компании и хотел бы знать, какой шаблон дизайна лучше всего подходит для создания всех этих бизнес-документов. Я изучил некоторые из доступных шаблонов дизайна, честно говоря, у меня есть проблемы с применением их к моей реальной проблеме, чтобы получить конкретный здесь мой сценарий: нужно создавать различные типы документов, читать и поддерживать через формы окон и наконец, хранится в базе данных, например, счета-фактуры (купли-продажи), контракты (купли-продажи), коносамент, аккредитив, различные инвентарные и складские документы, а может быть, более поздняя часть бухгалтерских документов. Во-первых, я думал, что метод фабрики будет выполнять эту работу, но я не уверен, что это правильный выбор для этой задачи. Я думаю, что это лучший подход к тому, чтобы иметь абстрактный класс под названием «Документ» со всеми общими полями (например, docId, docDate, docNumber, docIssuer и т. Д.) В качестве моей базы, а затем погрузиться в конкретное создание нужного объекта документа , Какие существуют варианты? В случае фабрик: мне нужно определить конкретный класс для каждого документа и создать объект (который будет простым наследованием, не так ли?) Или как должен выглядеть подход фабрики в отношении моей проблемы? Не лучше ли определять каждую спецификацию документа (которая в конечном итоге будет похожа на каждое поле таблицы базы данных) в качестве собственного класса и использовать шаблон построителя или составной шаблон для сборки нужного документа во время выполнения? Или есть ли другие подходы? Интересно, что многие бизнес-программы должны принять это решение, но я не мог найти никаких предыдущих вопросов по StackOverflow для этой довольно распространенной проблемы.Создание динамического бизнес-документа

Как уже говорилось, мы находимся в стадии планирования, и этот вопрос можно считать важнейшим элементом архитектуры, поэтому любые конструктивные рекомендации будут высоко оценены.

+0

Где вы собираетесь хранить эти данные (SQL/NoSQL)? – Daemon025

+0

В приложении этой области вы, скорее всего, будете использовать множество шаблонов проектирования. Нет шаблона «наилучшего соответствия» для решения всех вопросов, которые вы поднимаете в своем посте. Нарисуйте отношения между объектами, напишите какой-то код, который что-то сделает. Повторение. Повторяете ли вы код или решаете одну и ту же проблему снова и снова? Вот когда появится необходимость в шаблонах проектирования. – dbugger

+0

Я использую MS SQL 2008R2 – user3079832

ответ

0

В качестве дизайна базы данных вы можете использовать table per hierarchy, а затем использовать ORM, например NHibernate или Entity Framework, для создания документов (вместо использования фабрики).

+0

«Дядя Боб» рекомендует минимизировать использование фреймворков, потому что вы будете зависеть от них, особенно в долгосрочной перспективе это проблема, которую следует учитывать – user3079832

Смежные вопросы