private static void Main(string[] args)
        {
            DedicatedModem dedUser = new DedModemController(new HayesModem());

            dedUser.Receive();
            dedUser.Send();

            Modem modemClient = new DialModemController(new ErnieModem());

            modemClient.Dial();
            modemClient.Hangup();
            modemClient.Receive();
            modemClient.Send();
        }
        public void BridgeTest()
        {
            //Separate an abstraction (Abstraction) from its implementation (Implementor) by putting them in separate class hierarchies.
            //Implement the Abstraction in terms of (by delegating to) an Implementor object.

            //Modem client
            IModem modem = new DialModemController(new HayesModem());

            modem.Dial();
            modem.Receive();
            modem.Send();
            modem.Receive();

            //Ded client
            IDedicatedodem dedicatedodem = new DedModemController(new USRoboticsModem());

            modem.Send();
            modem.Receive();
        }