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

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

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

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

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

textual
Листинг программы
public abstract class AbstractWriter
{
    public abstract void Write(Object context);
}
 
public class ConcreteFileWriter : AbstractWriter
{
    public void Write(Object context)
    {
        // запись в файл
    }
}
 
public class ConcreteXmlWriter : AbstractWriter
{
    public void Write(Object context)
    {
        // запись в xml файл
    }
}
 
public class FactoryMethod
{
    public AbstractWriter GetWriter(Object object)
    {
        AbstractWriter writer = null;
        if (object is File) // проверка типа аргумента, заменить на нужный...
        {
            writer = new ConcreteFileWriter();
        }
        else if (object is Document) // проверка типа аргумента, заменить на нужный...
        {
            writer = new ConcreteXmlWriter();
        }
        return writer;
    }
}

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


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

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

15   голосов , оценка 4.133 из 5
Похожие ответы