Рекомендации по написанию фреймворка

Я столкнулся с необходимостью написания фреймворка для упрощения работы с большой и сложной библиотекой объектов (АркОбъекты). Какие принципы вы могли бы предложить для создания структуры такого рода? Предпочтительны ли статические методы? Как вы справляетесь с такими вещами, как ведение журнала? Как вы в будущем защитите свой код фреймворка от изменений, которые может внести поставщик?

Я думаю обо всех различных оболочках и помощниках, которые я видел для NHibernate, log4net и коде, который я читал в таких проектах, как NLog и NetTopologySuite, и я вижу так много хороших подходов, но, честно говоря, не знаю, с чего начать.

Кстати, я работаю на С# 3.5, но это больше о рекомендуемом подходе, чем о языке.


person Dylan    schedule 27.08.2008    source источник
comment
+1. (Если вы сможете заставить ESRI самим подумать над этими проблемами, +150!)   -  person MarkJ    schedule 31.07.2009


Ответы (4)


Книга Брэда Абрамса Руководство по проектированию фреймворка посвящена этому . Может стоит посмотреть.

person Matt Hamilton    schedule 27.08.2008

Попробуйте написать код, чтобы быть более гибким. Например, если у вас есть метод, который принимает массив в качестве параметра, сможете ли вы вместо этого принять IEnumerable или IList?

person Joel Coehoorn    schedule 27.08.2008

Я думаю, что ваша последовательность важнее, чем условности, которых вы придерживаетесь. Что касается будущего, то это вопрос кода, для которого вы создаете фреймворк. Дом из кирпича построить намного проще, чем из песка.

person Jason Baker    schedule 27.08.2008

Написание кода для фреймворка абсолютно отличается от написания кода приложения.

Я всегда обращался (и обращаюсь к другим) с Руководством по проектированию для разработчиков библиотек классов при написании кода на уровне фреймворка.

person Samuel Kim    schedule 13.10.2008