Example #1
0
        static void Main(string[] args)
        {
            // В клиентском коде могут быть уже созданы некоторые объекты
            // подсистемы. В этом случае может оказаться целесообразным
            // инициализировать Фасад с этими объектами вместо того, чтобы
            // позволить Фасаду создавать новые экземпляры.
            CourierSubsystem subsystem1 = new CourierSubsystem();
            PackingSubsystem subsystem2 = new PackingSubsystem();
            PayingSubsystem  subsystem3 = new PayingSubsystem();
            PostOffice       facade     = new PostOffice(subsystem1, subsystem2, subsystem3);

            Client.ClientCode(facade);
        }
Example #2
0
 // Клиентский код работает со сложными подсистемами через простой
 // интерфейс, предоставляемый Фасадом. Когда фасад управляет жизненным
 // циклом подсистемы, клиент может даже не знать о существовании
 // подсистемы. Такой подход позволяет держать сложность под контролем.
 public static void ClientCode(PostOffice facade)
 {
     Console.Write(facade.SendParcel());
 }