Member 12660641 Ответов: 0

Запасной вариант в моей реализации вместо использования декоратора


В настоящее время у меня есть пример приложения, которое используется для рендеринга фотографии с водяным знаком и без него. У меня есть две версии приложения: одна с нанесенным декоратором, а другая без декоратора (пожалуйста, смотрите код ниже).

Я борюсь с тем, что является недостатком в моей собственной реализации. Любое объяснение будет оценено.

public interface IRender
{
    void Render();
}
 
public class Photo
{
    IRender iRender;
    public void SetRender(IRender iRenderParam)
    {
        iRender = iRenderParam;
    }
 
    public void RenderPhoto()
    {
        iRender.Render();
    }
}
 
public class NormalRender : IRender
{
    public void Render()
    {
        Console.WriteLine("Normal Render");
    }
}
 
public class WaterMarkRender : IRender
{
    private void RenderWaterMark()
    {
        Console.WriteLine("Render WaterMark");
    }
    public void Render()
    {
        RenderWaterMark();
    }
}
 
public class Program
{
    static void Main(string[] args)
    {
        Photo photo = new Photo();
        photo.SetRender(new NormalRender());
        photo.RenderPhoto();
 
        photo.SetRender(new WaterMarkRender());
        photo.RenderPhoto();
 
        Console.ReadLine();
    }
}


Что я уже пробовал:

Я проверил свою собственную реализацию и не могу понять ее собственных различий

BillWoodruff

Что заставляет вас думать, что в вашем коде могут быть "недостатки"?

Ehsan Sajjad

я думаю, что в коде нет ничего плохого

0 Ответов