Я пытаюсь разработать интерфейс для iTextsharp (библиотека для создания PDF), который я использую для своего проекта.Я не хочу никаких ссылок на iTextsharp в моем проекте, только интерфейс.
Допустим, у меня есть
interface IPdfTable { /* */ }
public class PdfTable : IPdfTable { /* */ }
interface IPdfCell { /* */ }
public class PdfCell : PdfCell { /* */ }
Хотя я могу легко создавать интерфейсы для каждого класса индивидуально, я 'Я испытываю трудности при реализации, когда эти классы взаимодействуют друг с другом.Где-то в коде мне нужны таблицы, чтобы иметь возможность принимать коллекцию ячеек.
Проблема возникает, когда у меня есть коллекция ячеек, и мне нужно добавить ее в таблицу.Каким-то образом мне нужно преобразовать IPdfCell в исходный элемент, который принимается библиотекой (iTextSharp).Я считаю, что быстрая и простая реализация была унылой, но не очень удачной разработкой.
Единственное другое решение, о котором я могу подумать, это использование интерфейса для сбора различных настроек и создания оригинального элемента (принятого iTextsharp) на летукогда он передается другим элементам.
Есть ли лучшая реализация?