Разработка дизайна намного сложнее, чем разработка приложения. Я только что написал статью в своем блоге об этом и выдвинул три идеала, которым я следую в дизайне фреймворка.
- Получите правильный дизайн перед выпуском
- Держите видимый SDK маленьким и сфокусированным
- Сделайте SDK простым в использовании
Точки 1 и 2 важны, потому что после выпуска релиза рефакторинг видимого SDK приводит к серьезным изменениям. Пункт 3 важен, если вы хотите, чтобы разработчики использовали ваш SDK.
Для меня эти идеалы определяют каждое решение, которое я принимаю в своей структуре. Я должен был рассматривать их снова и снова на протяжении всего процесса. Я добавил в свою статью несколько советов для достижения этих целей.
Советы по разработке Framework / SDK / API
Что касается шаблонов проектирования, я думаю, что пошел по тому же пути, что и вы. Я узнал о шаблонах проектирования несколько лет назад и понял, насколько мощными (и разрушительными) они могут быть. Я использовал некоторые в некоторых программах, и в конечном итоге получил использовать некоторые на платформе. Я обнаружил, что в моем фреймворке у меня появился шанс применить новые шаблоны, которые я не смог использовать для приложений (изо всех сил я могу думать только о шаблонном методе, и мне кажется, что я использовал больше фабрик в своих рамках, чем в приложении. Я не могу вспомнить все детали).
Удачи. Я думаю, что дизайн фреймворка сложен, но и полезен.
Отказ от ответственности: я не эксперт в проектировании фреймворков ... просто кое-что, что я баловался.