Паттерн factory method работа с отчетами (в виде xml, html) на c# (генерация отчетов)

Узнай цену своей работы

Формулировка задачи:

Всем приветик)) Преподаватель дал задание на экзамене, и не как не могу с ним разобраться. Нужно в C# привести пример работы паттерна фабричный метод. В интернете нашла, что то похожее но на языке java
Листинг программы
  1. public abstract class AbstractWriter {
  2. public abstract void write(Object context);
  3. }
Листинг программы
  1. public class ConcreteFileWriter extends AbstractWriter {
  2. public void write (Object context) {
  3. // method body
  4. }
  5. }
  6. public class ConcreteXmlWriter extends AbstractWriter {
  7. public void write (Object context) {
  8. // method body
  9. }
  10. }
Листинг программы
  1. import java.io.File;
  2. import org.w3c.dom.Document;
  3. public class FactoryMethod {
  4. public AbstractWriter getWriter(Object object) {
  5. AbstractWriter writer = null;
  6. if (object instanceof File) {
  7. writer = new ConcreteFileWriter();
  8. } else if (object instanceof Document) {
  9. writer = new ConcreteXmlWriter();
  10. }
  11. return writer;
  12. }
  13. }
Взяла отсюда: http://www.javenue.info/post/17 Помогите разобраться. P.S. в С# я почти ничего не понимаю. Так уж вышло=))

Решение задачи: «Паттерн factory method работа с отчетами (в виде xml, html) на c# (генерация отчетов)»

textual
Листинг программы
  1. public abstract class AbstractWriter
  2. {
  3.     public abstract void Write(Object context);
  4. }
  5.  
  6. public class ConcreteFileWriter : AbstractWriter
  7. {
  8.     public void Write(Object context)
  9.     {
  10.         // запись в файл
  11.     }
  12. }
  13.  
  14. public class ConcreteXmlWriter : AbstractWriter
  15. {
  16.     public void Write(Object context)
  17.     {
  18.         // запись в xml файл
  19.     }
  20. }
  21.  
  22. public class FactoryMethod
  23. {
  24.     public AbstractWriter GetWriter(Object object)
  25.     {
  26.         AbstractWriter writer = null;
  27.         if (object is File) // проверка типа аргумента, заменить на нужный...
  28.         {
  29.             writer = new ConcreteFileWriter();
  30.         }
  31.         else if (object is Document) // проверка типа аргумента, заменить на нужный...
  32.         {
  33.             writer = new ConcreteXmlWriter();
  34.         }
  35.         return writer;
  36.     }
  37. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.133 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы