static void Main(string[] args) { TextEditor textEditor = new TextEditor(); Compiller compiller = new Compiller(); CLR clr = new CLR(); VisualStudioFacade ide = new VisualStudioFacade(textEditor, compiller, clr); Programmer programmer = new Programmer(); programmer.CreateApplication(ide); Console.Read(); }
static void Main(string[] args) { TextEditor textEditor = new TextEditor(); Compiller compiller = new Compiller(); CLR clr = new CLR(); VisualStudioFacade vs = new VisualStudioFacade(textEditor, compiller, clr); vs.Start(); vs.Stop(); //So, instead of calling all the methods from appropriate classes //call all these from one common interface (class VisualStudioFacade in this case Console.ReadKey(); }
/* * Кстати, отличным примером реализации Фасада из реальной жизни может быть ваша IDE, в которой вы пишете код. * Через неё вы взаимодействуете с компилятором, файловой системой, командной строкой и много чем ещё. * Ваш процесс разработки при этом значительно упрощается. */ static void Main(string[] args) { // Начнём с написания кода. Нам потребуется класс текстового редактора: Editor.cs // Код С#, как вам известно, перед выполнением должен компилироваться, значит, нам нужно вызывать компилятор, класс для работы с которым может выглядеть так: Compiller.cs // Код С# выполняется на виртуальной машине CLR, поэтому нам понадобится класс для вызова среды выполнения: Runtime.cs // Теперь, когда у нас есть все компоненты, реализуем Фасад, через который и будет работать с ними наша IDE: IdeFacade.cs // Посмотрим, как всё это работает: // при запуске IDE инициализирует объекты для работы с компонентами Editor textEditor = new Editor(); Compiller compiller = new Compiller(); Runtime runtime = new Runtime(); // Наша модель IDE запущена и готова к использованию IdeFacade ide = new IdeFacade(textEditor, compiller, runtime); // Начинаем писать код и нажимаем кнопку Start ide.Start("Console.WriteLine(\"Hello World!\");"); // запускается выполнение нашей программы ide.Stop(); }
public VisualStudioFacade(TextEditor te, Compiller compil, CLR clr) { this.textEditor = te; this.compiller = compil; this.clr = clr; }
public VisualStudioFacade(TextEditor te, Compiller c, CLR clr) { textEditor = te; compiller = c; Clr = clr; }