static void Main() { // Zufallszahlengenerator erstelltn RandomNumberGenerator numberGenerator = new RandomNumberGenerator(250); // Beobachter erstellen BaseObserver baseObserver = new BaseObserver(numberGenerator, 10); StatisticsObserver statisticsObserver = new StatisticsObserver(numberGenerator, 20); RangeObserver rangeObserver = new RangeObserver(numberGenerator, 5, 200, 300); QuickTippObserver quickTippObserver = new QuickTippObserver(numberGenerator); // Nummerngenerierung starten numberGenerator.StartNumberGeneration(); // Resultat ausgeben Console.WriteLine("\n--------------------RESULT-----------------------"); Console.ForegroundColor = ConsoleColor.DarkGreen; Console.WriteLine(statisticsObserver.ToString()); Console.WriteLine(rangeObserver.ToString()); Console.WriteLine(quickTippObserver.ToString()); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("-------------------------------------------------\n"); Console.Write("Bitte drücken Sie Enter ..."); Console.ReadLine(); }
private void ObserverForm_Load(object sender, System.EventArgs e) { _subject = new Subject(); _subject.SetElementColor(Color.Red); graphics = panel2.CreateGraphics(); int x = 100; Assembly assembly = Assembly.GetExecutingAssembly(); var types = assembly.GetTypes().Where(t => t.BaseType != null && t.BaseType.Equals(typeof(BaseObserver)) && !t.IsAbstract); int y = 20; foreach (var type in types) { var descrAttr = Attribute.GetCustomAttributes(type, typeof(DescriptionAttribute)).FirstOrDefault(); string text = (descrAttr as DescriptionAttribute).Description; CheckBox btn = new CheckBox(); btn.Text = text; btn.Location = new Point(20, y); btn.Size = new Size(100, 20); var location = new Point(x, panel2.Height / 2); var rect = new Rectangle(location, new Size(sideLength, sideLength)); BaseObserver graphicElement = Activator.CreateInstance(type, graphics, rect, _subject) as BaseObserver; btn.Tag = graphicElement; btn.CheckedChanged -= btn_CheckedChanged; btn.CheckedChanged += btn_CheckedChanged; groupBox1.Controls.Add(btn); y += 20; x += 100; } }
public void NumberGenerator_ExplicitCallOfAttachASecondTime_ShouldThrowInvalidOperationException() { //Arrange RandomNumberGenerator numberGenerator = new RandomNumberGenerator(); BaseObserver baseObserver = new BaseObserver(numberGenerator, 5); //Act numberGenerator.NextNumberHandlerChanged += baseObserver.OnNextNumber; //Assert Assert.Fail("InvalidOperationException was expected!"); }
public void NumberGenerator_DetachCalledTwiceWithIdenticalObserver_ShouldThrowInvalidOperationException() { //Arrange RandomNumberGenerator numberGenerator = new RandomNumberGenerator(); BaseObserver baseObserver = new BaseObserver(numberGenerator, 5); //Act numberGenerator.NextNumberHandlerChanged -= baseObserver.OnNextNumber; numberGenerator.NextNumberHandlerChanged -= baseObserver.OnNextNumber; //Assert Assert.Fail("NullReferenceException was expected!"); }
public void NumberGenerator_DetachCalledTwiceWithIdenticalObserver_ShouldThrowInvalidOperationException() { //Arrange RandomNumberGenerator numberGenerator = new RandomNumberGenerator(); BaseObserver baseObserver = new BaseObserver(numberGenerator, 5); //Act numberGenerator.Detach(baseObserver); numberGenerator.Detach(baseObserver); //Assert Assert.Fail("InvalidOperationException was expected!"); }
//管理するオブジェクトの追加 public void AddObserver(BaseObserver oo) { if (oo == null) { return; } if (baseObserver.Contains(oo)) { return; } baseObserver.Add(oo); oo.Enter(gameObject); }
//管理するオブジェクトの削除 public void RemoveObserver(BaseObserver oo) { if (oo == null) { return; } if (!baseObserver.Contains(oo)) { return; } baseObserver.Remove(oo); oo.Exit(gameObject); }
static void Main() { // Zufallszahlengenerator erstelltn RandomNumberGenerator numberGenerator = new RandomNumberGenerator(250); // Beobachter erstellen BaseObserver baseObserver = new BaseObserver(numberGenerator, 10); StatisticsObserver statisticsObserver = new StatisticsObserver(numberGenerator, 20); RangeObserver rangeObserver = new RangeObserver(numberGenerator, 5, 200, 300); QuickTippObserver quickTippObserver = new QuickTippObserver(numberGenerator); // Nummerngenerierung starten // Resultat ausgeben throw new NotImplementedException(); }
void btn_CheckedChanged(object sender, EventArgs e) { CheckBox box = sender as CheckBox; BaseObserver graphicElement = box.Tag as BaseObserver; if (box.Checked) { _subject.RegistrerObserver(graphicElement); } else { _subject.UnRegistrerObserver(graphicElement); } Draw(); }
public void NumberGenerator_CallDetach_ShouldWork() { //Arrange RandomNumberGenerator numberGenerator = new RandomNumberGenerator(); BaseObserver baseObserver = new BaseObserver(numberGenerator, 5); //Act try { numberGenerator.NextNumberHandlerChanged -= baseObserver.OnNextNumber; } catch (Exception ex) { //Assert Assert.Fail("Expected no exception, but got: " + ex.Message); } }
static void Main() { // Zufallszahlengenerator erstelltn RandomNumberGenerator numberGenerator = new RandomNumberGenerator(250); // Beobachter erstellen BaseObserver baseObserver = new BaseObserver(numberGenerator, 10); StatisticsObserver statisticsObserver = new StatisticsObserver(numberGenerator, 20); RangeObserver rangeObserver = new RangeObserver(numberGenerator, 5, 200, 300); QuickTippObserver quickTippObserver = new QuickTippObserver(numberGenerator); // Nummerngenerierung starten // Resultat ausgeben numberGenerator.StartNumberGeneration(); Console.WriteLine(statisticsObserver.ToString()); }
static void Main() { // Zufallszahlengenerator erstelltn RandomNumberGenerator numberGenerator = new RandomNumberGenerator(250); // Beobachter erstellen BaseObserver baseObserver = new BaseObserver(numberGenerator, 10); StatisticsObserver statisticsObserver = new StatisticsObserver(numberGenerator, 20); RangeObserver rangeObserver = new RangeObserver(numberGenerator, 5, 200, 300); QuickTippObserver quickTippObserver = new QuickTippObserver(numberGenerator); Console.WriteLine("----------Result------------"); Console.WriteLine($"{statisticsObserver.GetType().Name}: Received {statisticsObserver.CountOfNumbersReceived} numbers => Min='{statisticsObserver.Min}', Max='{statisticsObserver.Max}', Sum='{statisticsObserver.Sum}', Avg='{statisticsObserver.Avg}'."); Console.WriteLine($"{rangeObserver.GetType().Name}: Received {rangeObserver.CountOfNumbersReceived} numbers => There were '{rangeObserver.NumbersInRange}' numbers between '{rangeObserver.LowerRange}' and '{rangeObserver.UpperRange}'."); Console.WriteLine($"{quickTippObserver.GetType().Name}: Received {quickTippObserver.CountOfNumbersReceived} numbers => Quick-Tipp is {quickTippObserver.ToString()}."); Console.WriteLine("Drücken Sie eine beliebige Taste . . ."); Console.ReadKey();; }
static void Main() { // Zufallszahlengenerator erstelltn RandomNumberGenerator numberGenerator = new RandomNumberGenerator(250); // Beobachter erstellen BaseObserver baseObserver = new BaseObserver(numberGenerator, 10); StatisticsObserver statisticsObserver = new StatisticsObserver(numberGenerator, 20); RangeObserver rangeObserver = new RangeObserver(numberGenerator, 5, 200, 300); QuickTippObserver quickTippObserver = new QuickTippObserver(numberGenerator); // Nummerngenerierung starten numberGenerator.StartNumberGeneration(); // Resultat ausgeben Console.WriteLine("\n\n------------------------------------------- RESULT ---------------------------------------------\n"); Console.WriteLine(statisticsObserver.PrintResult()); Console.WriteLine(rangeObserver.PrintResult()); Console.WriteLine(quickTippObserver.PrintResult()); Console.WriteLine("\n--------------------------------------------------------------------------------------------------"); Console.WriteLine("Drücken Sie eine beliebige Taste..."); Console.ReadKey(); //Console.WriteLine($" >> {statisticsObserver.GetType().Name+":",-20} Received {statisticsObserver.CountOfNumbersReceived:D5} numbers ===> Min='{statisticsObserver.Min}', Max='{statisticsObserver.Max}', Sum='{statisticsObserver.Sum}', Avg='{statisticsObserver.Avg}'."); //Console.WriteLine($" >> {rangeObserver.GetType().Name+":",-20} Received {rangeObserver.CountOfNumbersReceived:D5} numbers ===> There were '{rangeObserver.NumbersInRange}' numbers between '{rangeObserver.LowerRange}' and '{rangeObserver.UpperRange}'"); //Console.WriteLine($" >> {quickTippObserver.GetType().Name+":",-20} Received {quickTippObserver.CountOfNumbersReceived:D5} numbers ===> Quick-Tip is {quickTippObserver.QuickTippNumbers[0]}, {quickTippObserver.QuickTippNumbers[1]}, {quickTippObserver.QuickTippNumbers[2]}, {quickTippObserver.QuickTippNumbers[3]}, {quickTippObserver.QuickTippNumbers[4]}, {quickTippObserver.QuickTippNumbers[5]}."); //Console.ReadKey(); // Resultat ausgeben }
static void Main() { // Zufallszahlengenerator erstelltn RandomNumberGenerator numberGenerator = new RandomNumberGenerator(250); // Beobachter erstellen BaseObserver baseObserver = new BaseObserver(numberGenerator, 10); StatisticsObserver statisticsObserver = new StatisticsObserver(numberGenerator, 20); RangeObserver rangeObserver = new RangeObserver(numberGenerator, 5, 200, 300); QuickTippObserver quickTippObserver = new QuickTippObserver(numberGenerator); // Nummerngenerierung starten numberGenerator.StartNumberGeneration(); // Resultat ausgeben Console.WriteLine("------------------------------------------------------ RESULT --------------------------------------------------------\n"); Console.WriteLine($"{statisticsObserver.GetType().Name}: Received {statisticsObserver.CountOfNumbersReceived} numbers => Min='{statisticsObserver.Min}', Max='{statisticsObserver.Max}', Sum='{statisticsObserver.Sum}', Avg='{statisticsObserver.Avg}'."); Console.WriteLine($"{rangeObserver.GetType().Name}: Received {rangeObserver.CountOfNumbersReceived} numbers => There were '{rangeObserver.NumbersInRange}' numbers between '{rangeObserver.LowerRange}' and '{rangeObserver.UpperRange}'."); Console.WriteLine($"{quickTippObserver.GetType().Name}: Received {quickTippObserver.CountOfNumbersReceived} numbers => Quick-Tipp is {quickTippObserver.ConvertTippToString()}."); Console.WriteLine("------------------------------------------------------------------------------------------------------------------------\n"); Console.WriteLine("Press any key..."); Console.ReadKey(); }
static void Main() { // Zufallszahlengenerator erstelltn RandomNumberGenerator numberGenerator = new RandomNumberGenerator(250); // Beobachter erstellen BaseObserver baseObserver = new BaseObserver(numberGenerator, 10); StatisticsObserver statisticsObserver = new StatisticsObserver(numberGenerator, 20); RangeObserver rangeObserver = new RangeObserver(numberGenerator, 5, 200, 300); QuickTippObserver quickTippObserver = new QuickTippObserver(numberGenerator); // Nummerngenerierung starten numberGenerator.StartNumberGeneration(); int[] tipps = quickTippObserver.QuickTippNumbers.OrderBy(_ => _).ToArray(); // Resultat ausgeben Console.WriteLine("--------------------------------------- Result -----------------------------------------------"); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"{nameof(StatisticsObserver)}: Recevied {statisticsObserver.CountOfNumbersReceived:D5} numbers ===> {nameof(statisticsObserver.Min)}: '{statisticsObserver.Min}', {nameof(statisticsObserver.Max)}: '{statisticsObserver.Max}', {nameof(statisticsObserver.Sum)}: '{statisticsObserver.Sum}', {nameof(statisticsObserver.Avg)}: '{statisticsObserver.Avg}'"); Console.WriteLine($"{nameof(RangeObserver)}: Recevied {rangeObserver.CountOfNumbersReceived:D5} numbers ===> There were '{rangeObserver.NumbersInRange}' numbers between '{rangeObserver.LowerRange}' and '{rangeObserver.UpperRange}'."); Console.WriteLine($"{nameof(QuickTippObserver)}: Recevied {quickTippObserver.CountOfNumbersReceived:D5} numbers ===> Quick-Tipp is {tipps[0]} {tipps[1]} {tipps[2]} {tipps[3]} {tipps[4]} {tipps[5]}."); Console.ResetColor(); }
static void Main() { // Zufallszahlengenerator erstelltn RandomNumberGenerator numberGenerator = new RandomNumberGenerator(250); // Beobachter erstellen BaseObserver baseObserver = new BaseObserver(numberGenerator, 10); StatisticsObserver statisticsObserver = new StatisticsObserver(numberGenerator, 20); RangeObserver rangeObserver = new RangeObserver(numberGenerator, 5, 200, 300); QuickTippObserver quickTippObserver = new QuickTippObserver(numberGenerator); numberGenerator.StartNumberGeneration(); // Nummerngenerierung starten // Resultat ausgeben Console.WriteLine("----------Result------------"); Console.WriteLine(statisticsObserver.GetInfo()); Console.WriteLine(rangeObserver.GetInfo()); Console.WriteLine(quickTippObserver.GetInfo()); Console.WriteLine("----------------------------"); Console.WriteLine("Drücken Sie eine beliebige Taste . . ."); Console.ReadKey(); }
static void Main() { // Zufallszahlengenerator erstelltn RandomNumberGenerator numberGenerator = new RandomNumberGenerator(250); // Beobachter erstellen BaseObserver baseObserver = new BaseObserver(numberGenerator, 10); StatisticsObserver statisticsObserver = new StatisticsObserver(numberGenerator, 20); RangeObserver rangeObserver = new RangeObserver(numberGenerator, 5, 200, 300); QuickTippObserver quickTippObserver = new QuickTippObserver(numberGenerator); // Nummerngenerierung starten numberGenerator.StartNumberGeneration(); // Resultat ausgeben Console.WriteLine("\n-------------------------------Result-------------------------------"); Console.WriteLine($" >> {statisticsObserver.GetType().Name}: Recieved {statisticsObserver.CountOfNumbersReceived} numbers " + $"==> Min = '{statisticsObserver.Min}', Max = '{statisticsObserver.Max}', Sum = '{statisticsObserver.Sum}' Avg = '{statisticsObserver.Avg}'."); Console.WriteLine(rangeObserver.ToString()); Console.WriteLine(quickTippObserver.ToString()); Console.WriteLine("--------------------------------------------------------------------"); Console.ReadKey(); }
public void RegistrerObserver(BaseObserver observer) { observerList.Add(observer); }
public void Detached(BaseObserver baseObserver) { _observers.Remove(baseObserver); }
private void button1_Click(object sender, EventArgs e) { bool errorCheck = Validation(); if (errorCheck) { return; } else { string classname = comboBox1.Items[comboBox1.SelectedIndex].ToString(); string name = textBox1.Text; string author = textBox2.Text; string publisher = textBox3.Text; DateTime publishDate = monthCalendar1.SelectionStart; int stock = 0; if (textBox5.Enabled) { stock = Int16.Parse(textBox5.Text); } string type = ""; if (textBox6.Enabled) { type = textBox6.Text; } bool isDigital = false; switch (classname) { case "Book": BookObject newBook = new BookObject(name, author, publisher, publishDate, stock); returnItem = new BookObserver(newBook); break; case "E-Book": EBookObject newEBook = new EBookObject(name, author, publisher, publishDate); returnItem = new EBookObserver(newEBook); break; case "Video (Physical)": case "Video (Digital)": if (classname.Contains("Digital")) { isDigital = true; } VideoObject newVideo = new VideoObject(name, type, author, publishDate, publisher, isDigital, stock); returnItem = new VideoObserver(newVideo); break; case "Audio (Physical)": case "Audio (Digital)": if (classname.Contains("Digital")) { isDigital = true; } AudioObject newAudio = new AudioObject(name, type, author, publishDate, publisher, isDigital, stock); returnItem = new AudioObserver(newAudio); break; default: break; } this.DialogResult = DialogResult.OK; this.Close(); return; } }
public void addMaterial(BaseObserver newMaterial) { materialList.Add(newMaterial); }
public void Dettached(BaseObserver observer) => observers.Remove(observer);
public void Attached(BaseObserver observer) => observers.Add(observer);
public void UnRegistrerObserver(BaseObserver observer) { observerList.Remove(observer); }
public void Attached(BaseObserver baseObserver) { _observers.Add(baseObserver); }
// Remove a certain observer public void Detach(BaseObserver observer) { observers.Remove(observer); }
// Add a new observer public void Attach(BaseObserver observer) { observers.Add(observer); }