package designPatterns;import java.util.*;class product extends Observable ...{ private String name; private float 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); }}class nameOb implements Observer ...{ private String name; public void update(Observable arg0, Object arg1) ...{ if (arg1 instanceof String) ...{ name = (String) arg1; System.out.println("Name has been changed to: " + name); } }}class priceOb implements Observer ...{ private float price; public void update(Observable arg0, Object arg1) ...{ if (arg1 instanceof Float) ...{ price = ((Float) arg1).floatValue(); System.out.println("Price has been changed to: " + price); } }}public class ObserverTest ...{ public static void main(String[] args) ...{ product p=new product(); nameOb no=new nameOb(); priceOb po=new priceOb(); p.addObserver(no); p.addObserver(po); p.setName("p1"); p.setPrice(5f); p.setName("p2"); p.setPrice(p.getPrice()+1.3f); }}