Паттерн factory method работа с отчетами (в виде xml, html) на c# (генерация отчетов)
Формулировка задачи:
Всем приветик))
Преподаватель дал задание на экзамене, и не как не могу с ним разобраться.
Нужно в C# привести пример работы паттерна фабричный метод.
В интернете нашла, что то похожее но на языке java
Взяла отсюда: http://www.javenue.info/post/17
Помогите разобраться.
P.S. в С# я почти ничего не понимаю. Так уж вышло=))
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;
}
}Решение задачи: «Паттерн 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;
}
}