Ejemplo n.º 1
0
        public void DischargeThreadTest()
        {
            BatteryBase Battery = new LiIonBattery(3.81, 2716);
            var         Charger = ChargerFactory.GetCharger(Battery, ChargerType.Theard);

            Thread.Sleep(Charger.dischargeTick);
            Assert.IsTrue(Battery.Charge < 100);
        }
Ejemplo n.º 2
0
        public void CalculateChargingTimePowerBZeroCap()
        {
            ICharger crg    = ChargerFactory.GetCharger(ChargerTypes.Powerbk);
            double   actRes = crg.CalculateChargingTime(0);
            double   expRes = 0;

            Assert.AreEqual(expRes, actRes);
        }
Ejemplo n.º 3
0
        public void ChargeThreadTest()
        {
            BatteryBase Battery = new LiIonBattery(3.81, 2716);
            var         Charger = ChargerFactory.GetCharger(Battery, ChargerType.Theard);

            Charger.StartChargind();
            Thread.Sleep(Charger.dischargeTick * 2);
            Assert.IsTrue(Battery.Charge >= 99);
        }
        static void Main(string[] args)
        {
            //LAB#2

            //Dependency Injection
            IOutput Output;

            Output = new ConsoleOutput();

            //Instantiate Factories
            var batteryFactory  = new BatteryFactory(Output);
            var chargerFactory  = new ChargerFactory(Output);
            var screenFactory   = new ScreenFactory(Output);
            var playbackFactory = new PlaybackFactory(Output);

            MobilePhone simCorpMobile = SimCorpMobile.Instance;
            int         Index;

            #region BatteryComponent
            //Ask User for an index
            Index = batteryFactory.SelectComponentIndex();
            //Create Component Class based on index
            simCorpMobile.Battery = batteryFactory.Create(Index).MobileComponent as IBattery;
            //Do something
            simCorpMobile.Install();
            #endregion

            #region ChargerComponent
            //Ask User for an index
            Index = chargerFactory.SelectComponentIndex();
            //Create Component Class based on index
            simCorpMobile.Charger = chargerFactory.Create(Index).MobileComponent as ICharger;
            //Do something
            simCorpMobile.Charge();
            #endregion

            #region ScreenComponent
            //Ask User for an index
            Index = screenFactory.SelectComponentIndex();
            //Create Component Class based on index
            simCorpMobile.DisplayScreen = screenFactory.Create(Index).MobileComponent as IScreen;
            simCorpMobile.Show();
            simCorpMobile.TouchScreen = simCorpMobile.DisplayScreen as IScreenTouch;
            simCorpMobile.Touch();
            #endregion

            #region PlaybackComponent
            //Ask User for an index
            Index = playbackFactory.SelectComponentIndex();
            //Create Component Class based on index
            simCorpMobile.Playback = playbackFactory.Create(Index).MobileComponent as IPlayback;
            simCorpMobile.Play();
            #endregion

            System.Console.ReadLine();
        }
Ejemplo n.º 5
0
 public SimcorpMobile()
 {
     vOLEDScreen          = new OLEDScreen();
     speaker              = new SpeakerMono();
     microphoneVolControl = new MicrophoneWithMute();
     key             = new KeyboardWithLock();
     control         = new MultyTouchScreen();
     SMSProvider     = new SMSProvider();
     Storage         = new Storage();
     SMSProviderBase = SMSProviderFactory.GetSMSProvider(Storage);
     Battery         = new Battery();
     Charger         = ChargerFactory.GetCharger(Battery);
 }
Ejemplo n.º 6
0
        private void button1_Click(object sender, EventArgs e)
        {
            textBox1.Clear();
            output = new WFAOutput(textBox1);

            MyMobile.PlaybackComponent = HeadsetFactory.GetPlayback((headsetTypik)checkedListBox1.SelectedIndex, output);
            MyMobile.PlaybackComponent.Play(textBox1);

            MyMobile.SimCardItem = SimCardFactory.GetSimCard((SimCardTypeik)checkedListBox2.SelectedIndex, output);
            MyMobile.SimCardItem.Call(textBox1);

            MyMobile.ChargerComponenet = ChargerFactory.GetCharger((ChargerTypik)checkedListBox3.SelectedIndex, output);
            MyMobile.ChargerComponenet.Charge(textBox1);
        }
Ejemplo n.º 7
0
        static void Main(string[] args)
        {
            ConsoleOutput outputType = new ConsoleOutput();

            HeadsetTypes inputHSType   = ReadHeadSet(outputType);
            ChargerTypes inputChrgType = ReadCharger(outputType);

            IPlayback headset = HeadsetFactory.GetHeadSet(outputType, inputHSType);
            ICharger  charger = ChargerFactory.GetCharger(inputChrgType);

            var mymobile = new SimCorpMobile(headset, charger, outputType);

            Console.WriteLine(mymobile);
            Console.ReadKey();
        }
Ejemplo n.º 8
0
        public SMSForm()
        {
            Mobile = new SimCorpPhone();

            InitializeComponent();
            MsgEndDateTime.Value = DateTime.Now + TimeSpan.FromHours(1);
            MessageFormatCB.Items.AddRange(GetMessageFormatCBItems());
            MessageFormatCB.SelectedItem = MessageFormatCB.Items[0];
            UsersComboBox.Items.Add("All");
            UsersComboBox.SelectedItem          = UsersComboBox.Items[0];
            Mobile.MessageStorage.MessageAdded += OnSMSReceiver;
            Mobile.Battery.ChargeChanged       += RefreshBatteryView;
            RefreshBatteryView(Mobile.Battery.Charge);
            Charger = ChargerFactory.GetCharger(Mobile.Battery, ChargerType.Task);
        }
Ejemplo n.º 9
0
 private void SetChargerType()
 {
     if (this.rbChargerCar.Checked)
     {
         vCharger = ChargerFactory.GetCharger(ChargerTypes.Car);
     }
     else if (this.rbChargerPowerbank.Checked)
     {
         vCharger = ChargerFactory.GetCharger(ChargerTypes.Powerbk);
     }
     else if (this.rbChargerWall.Checked)
     {
         vCharger = ChargerFactory.GetCharger(ChargerTypes.Wall);
     }
 }
Ejemplo n.º 10
0
        private static Mobile InstantiateSimCorpMobile(IOutput myOutputType)
        {
            Mobile mobile = null;

            ICharger  Charger = ChargerFactory.GetCharger(ChargerTypes.Powerbk);
            IPlayback Headset = HeadsetFactory.GetHeadSet(myOutputType, HeadsetTypes.iPhone);

            if (Charger != null)
            {
                if (Headset != null)
                {
                    mobile = new SimCorpMobile(Headset, Charger, myOutputType);
                }
            }
            return(mobile);
        }
Ejemplo n.º 11
0
        public void ConfigureMobile()
        {
            int headsetType = defineEnumParam(typeof(headsetTypik));

            PlaybackComponent = HeadsetFactory.GetPlayback((headsetTypik)headsetType, output);
            PlaybackComponent.Play(new object());

            int chargerType = defineEnumParam(typeof(ChargerTypik));

            ChargerComponenet = ChargerFactory.GetCharger((ChargerTypik)chargerType, output);
            ChargerComponenet.Charge(new object());

            int simcardType = defineEnumParam(typeof(SimCardTypeik));

            SimCardItem = SimCardFactory.GetSimCard((SimCardTypeik)simcardType, output);
            SimCardItem.Call(new object());
        }
Ejemplo n.º 12
0
        /// <summary>
        /// 审批流程的一步步封装
        ///
        /// 行为型设计模式的巅峰之作:责任链模式Respon

        /// </summary>
        public static void AdultShow()
        {
            ApplyContext context = new ApplyContext()
            {
                Id          = 101,
                Name        = "卯金刀",
                Hour        = 30,
                AdultResult = false
            };

            //方法五//工厂方法模式 就是为了扩展 为了屏蔽细节
            {
                IFactory      factory = new PMFactoryChild();//new PMFactory(); 包一层child就是为了进一步扩展
                AbstractAdult PM      = factory.CreateInstance();
                factory = new ChargerFactory();
                AbstractAdult Charger = factory.CreateInstance();
                factory = new ManagerFactory();
                AbstractAdult Manager = factory.CreateInstance();

                //以上的创建对象还可以不用new ,可以用创建型设计模式 中的简单工厂 工厂方法 抽象工厂

                PM.SetNext(Charger);
                Charger.SetNext(Manager);
                //PM.SetNext(Manager);//保证环节的稳定、可以灵活的配置
                PM.Adult(context);
            }
            //方法四 简单工厂
            //{
            //    AbstractAdult PM = SimpleFactory.CreateInstance(SimpleFactory.AdultType.PM);
            //    AbstractAdult Charger = SimpleFactory.CreateInstance(SimpleFactory.AdultType.Charger);
            //    AbstractAdult Manager = SimpleFactory.CreateInstance(SimpleFactory.AdultType.Manager);

            //    //以上的创建对象还可以不用new ,可以用创建型设计模式 中的简单工厂 工厂方法 抽象工厂

            //    PM.SetNext(Charger);
            //    Charger.SetNext(Manager);
            //    //PM.SetNext(Manager);//保证环节的稳定、可以灵活的配置
            //    PM.Adult(context);
            //}

            //方法三
            //{
            //    AbstractAdult PM = new PM()
            //    {
            //        Name = "张三组长"
            //    };
            //    AbstractAdult Charger = new Charger()
            //    {
            //        Name = "李四主管"
            //    };
            //    AbstractAdult Manager = new Manager()
            //    {
            //        Name = "王五经理"
            //    };

            //    //以上的创建对象还可以不用new ,可以用创建型设计模式 中的简单工厂 工厂方法 抽象工厂

            //    //PM.SetNext(Charger);
            //    //Charger.SetNext(Manager);
            //    PM.SetNext(Manager);//保证环节的稳定、可以灵活的配置
            //    PM.Adult(context);
            //}

            //方法二 抽象父类 面向对象第一步 多态、封装、继承都有
            //{

            //    AbstractAdult PM = new PM()
            //    {
            //        Name = "张三组长"
            //    };
            //    PM.Adult(context);
            //    if (!context.AdultResult)
            //    {
            //        AbstractAdult Charger = new Charger()
            //        {
            //            Name = "李四主管"
            //        };
            //        Charger.Adult(context);

            //        if (!context.AdultResult)
            //        {
            //            AbstractAdult Manager = new Manager()
            //            {
            //                Name = "王五经理"
            //            };
            //            Manager.Adult(context);

            //        }
            //    }


            //}
            //方法一(最简单,不涉及面向对象封装)
            //{
            //    //面向过程编程
            //    if (context.Hour < 8)
            //    {
            //        Console.WriteLine("PM审批通过");
            //    }
            //    else if (context.Hour < 16)
            //    {
            //        Console.WriteLine("主管审批通过");
            //    }
            //    else {
            //        Console.WriteLine("……");
            //    }
            //}
        }