Observer pattern [2]

package observerDM;

import java.util.Observable;

public class ConcreteSubject extends Observable {

        public ConcreteSubject(String _name , float _price) {
                this.name = _name;
                this.price = _price;
                System.out.println("ConcreteSubject created:" + _name + "at" + _price);
        }
        
        public String getName() {
                return name;
        }
        public void setName(String name) {
                this.name = name;
                setChanged();
                notifyObservers(name);
        }
        public float getPrice() {
                return price;
        }
        public void setPrice(float price) {
                this.price = price;
                setChanged();
                notifyObservers(price);
        }

        private String name ;
        private float price ;
}


package observerDM;

import java.util.Observable;
import java.util.Observer;

public class NameObserver implements Observer {

        public NameObserver() {
                this.name = null ;
                System.out.println("NameObserver has created:Name is :" + this.name);
        }
        
        public void update(Observable o, Object arg) {
                
                if(arg instanceof String) {
                        name = (String)arg;
                        System.out.println("NameObserver has changed:Name is :" + name);
                }else {
                        System.out.println("NameObserver :some other change to subject");
                }
        }
        
        private String name ;
}


package observerDM;

import java.util.Observable;
import java.util.Observer;

public class PriceObserver implements Observer {

        public PriceObserver() {
                this.price = 0 ;
                System.out.println("PriceObserver has created : Price is :" + price);
        }
        
        public void update(Observable o, Object arg) {
                if(arg instanceof Float) {
                        price = ((Float)arg).floatValue();
                        System.out.println("PriceObserver has changed:Price is :" + price);
                }else {
                        System.out.println("PriceObserver :some other change to subject");
                }
        }
        
        private float price ;
}


package observerDM;

public class TestObservers {
        
        public static void main(String[] args){
                
                ConcreteSubject sub = new ConcreteSubject("Com pops",(float)1.30);
                
                NameObserver name = new NameObserver();
                PriceObserver price = new PriceObserver();
                
                sub.addObserver(name);
                sub.addObserver(price);
                
                sub.setName("Frosted Flakes");
                sub.setPrice((float)1.40);
                
                sub.setPrice((float)2.03);
                sub.setName("helloWorld");
        }
}


Observer pattern [2]
  • del.icio.us
  • StumbleUpon
  • Digg
  • TwitThis
  • Mixx
  • Technorati
  • Facebook
  • NewsVine
  • Reddit
  • Google
  • LinkedIn
  • YahooMyWeb

Related Posts of Observer pattern [2]

  • hibernate generic generic DAO

    package org.lzpeng.dao; import java.io.Serializable; import java.util.List; import org.hibernate.Criteria; import org.hibernate.Query; import org.hibernate.criterion.Criterion; import org.springside.modules.orm.hibernate.Page; /** * * @version 2009-1-10 *

  • Servlet brief introduction

    Servlet brief introduction: Servlet is a small application server Are used to complete the B / S architecture, the client requests the response to treatment Platform independence, performance, able to run thread Servlet API for Servlet provides the s ...

  • First Hibernate Example

    Curd a simple example. Source does not contain the dependent libraries, or playing too much of the package. PO object Note: One must have the default constructor 2 non-final modified. Otherwise useless lazy loading. UserDAOImpl category code, and other co

  • Struts2 + hibernate + spring problem user log in

    dao layer services layer action jsp <tr> <td align="center"> <b> user name: </ b> </ td> <td> <s: textfield name = "czyNumber" cssClass = "textstyle" theme = "simple" size = &q

  • The level Hibernate cache

    Hibernate cache level: (1) a cache is very short and the session life cycle consistent, also known as session-level cache-level cache or transaction-level cache (2) Ways of Supporting level cache: get (); load (); iterator (); only entity object cach ...

blog comments powered by Disqus
Recent
Recent Entries
Tag Cloud
Random Entries