Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Tips: Arbeta med Observer Pattern

Postades av 2013-07-10 20:01:35 - Björn Johansson, i forum Skrivklåda, Tråden har 2 Kommentarer och lästs av 6359 personer

Hade tråkigt i kväll och skrev ihop denna i brist på annat att göra.

Förutsätter kunskaper i OOP.
Designmönstret Observer Pattern är ett sätt att notifiera en mängd objekt att en förändring skett.
Exempel:
- En knapp har klickats på (objektet har fått status=Nedtryckt)
- En databastabell har uppdaterats
- Värdet på en variabel har ändrats


class Observable {
	List<Observer> observerList;
	void Attach(Observer o) {
		//Spara o i observerList;
	}
	void Detach(Observer o) {
		//Ta bort o ur observerList om den finns i listan
	}
	void Notify(int value) {
		//Anropa Observer.update() för varje objekt som finns i observerList
	}
}


class MyObservableObject extends Observable {

	void changeMyValue(int value) {
		Notify(value); //Detta anropar Notify i basklassen Observable
	}
}


Basklassen Observable innehåller funktioner för att registrera och ta bort objekt samt att notifiera objekten som registrerats att en förändring skett.
MyObservableObject kan vara exempelvis en produkt i en mataffär, där värdet representerar vad produkten kostar.
I det exemplet är det mataffärerna som vill ha en notifiering när en uppdatering av priset skett och detta skall slå ut i alla affärer på samma gång.

class Observer {
	String name;
	int value;
	
	Observer(name) {
		//konstruktor
		this.name = name;
	}
	
	update(int value) {
		this.value = value;
		print("Värdet på " + name + "har uppdaterats och är nu " + value);
	}
}


För att testa detta kan exempelvis detta användas:
void Test()
{
	MyObservableObject product = new MyObservableObject();

	Observer shop1 = new Observer("shop 1");
	Observer shop2 = new Observer("shop 2");

	product.Attach(shop1);
	product.Attach(shop2);

	product.changeMyValue(40);

}


Detta ska generera outputen:
Värdet på shop 1 har uppdaterats och är nu 40
Värdet på shop 2 har uppdaterats och är nu 40


All kod i denna artikel är pseudokod och är alltså ej testad, koden är mest där för att ge en bild av hur Observer pattern fungerar.

Länkar om Observer Pattern:
http://www.codeproject.com/Articles/328365/Understanding-and-Implementing-Observer-Pattern-in
http://java.dzone.com/articles/design-patterns-uncovered


Svara

Sv: Tips: Arbeta med Observer Pattern

Postades av 2013-07-15 22:53:27 - Pelle Johansson

Hej, stort tack för ditt bidrag!


Svara

Sv:Tips: Arbeta med Observer Pattern

Postades av 2013-07-26 20:35:35 - Björn Johansson

Tanken var väl att det skulle komma ett par tips till men semestern tog över ;)


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 154
27 952
271 704
1 130
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies