Запасной вариант в моей реализации вместо использования декоратора
В настоящее время у меня есть пример приложения, которое используется для рендеринга фотографии с водяным знаком и без него. У меня есть две версии приложения: одна с нанесенным декоратором, а другая без декоратора (пожалуйста, смотрите код ниже).
Я борюсь с тем, что является недостатком в моей собственной реализации. Любое объяснение будет оценено.
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
я думаю, что в коде нет ничего плохого