Har en uppgift där vi ska göra en observer pattern i en asp.net, det är väldigt enkelt. Ska ha en lista med personer som är intresserade av att låna en bok. När boken finns på lager så skickas en notifikation.
Mitt problem är att när jag trycker på knappen addUser så skapas en subscriber och läggs till i listan. Men den försvinner från listan så fort metoden tar slut. Varför blir det så? product är ju deklarerad utanför metoden.
Observer Pattern:
Mitt problem är att när jag trycker på knappen addUser så skapas en subscriber och läggs till i listan. Men den försvinner från listan så fort metoden tar slut. Varför blir det så? product är ju deklarerad utanför metoden.
Kod:
private ConcreteSubject product = new ConcreteSubject(); protected void addUser_Click(object sender, EventArgs e) { product.Attach( new Subscriber( subscriberText.Text )); } protected void notifyBtn_Click(object sender, EventArgs e) { product.Notify("Titel på bok"); }
Observer Pattern:
Kod:
public class ConcreteSubject : Subject { public void CanBeBorrowed(string book) { Notify(book); } } public interface IObserver { void Borrow(string book); } public abstract class Subject { protected List<Subscriber> list = new List<Subscriber>(); public void Attach(Subscriber product) { list.Add(product); } public void Detach(Subscriber product) { list.Remove(product); } public void Notify(string book) { foreach (Subscriber l in list) { l.Borrow(book); } } } public class Subscriber : IObserver { private string name; public string Name { get { return name; } } public Subscriber(string name) { this.name = name; } public void Borrow(string book) { //Send Message } }