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); }
public void CalculateChargingTimePowerBZeroCap() { ICharger crg = ChargerFactory.GetCharger(ChargerTypes.Powerbk); double actRes = crg.CalculateChargingTime(0); double expRes = 0; Assert.AreEqual(expRes, actRes); }
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(); }
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); }
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); }
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(); }
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); }
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); } }
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); }
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()); }
/// <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("……"); // } //} }