Hello,
Thank you for your reply, The example that I want to realise is the following(Realization of the observer design pattern with JBossAOP):
Flower (Subject ):
package Bee;
public class Flower {
private boolean isOpen;
public boolean isOpen(){returnthis.isOpen;}
public Flower(){
this.isOpen=false;
}
public void open(){
this.isOpen=true;
}
public void close(){
this.isOpen=false;
}
}
The Bee class observe the opening and closing of Flower (attribute(isOpen))
PS: for easier reuse of the Bee class, we put the Update method (observer role)in another class and we make an introduction
Bee (Observer ):
package Bee;
public class Bee {
private String name;
public Bee(String name){
this.name = name;
}
public void dinner(){
System.out.println("Bee "+ name
+ "'s breakfast time!");
}
public void rest(){
System.out.println("Bee" + name
+ "'s bed time!");
}
}
The interface for all observers is the following:
package Bee ;
public interfaceFlowerObserver {
public void update();
}
And Mixin class is as follows:
package Bee;
public class BeeObserver implements FlowerObserver{
Bee bee;
public BeeObserver(Bee bee){this.bee=bee;}
public void update(){
if (isOpen) //the attribute value of Flower
bee.dinner();
else bee.rest();
}}
Finally the Main class:
package Bee;
public class Main {
public static voidmain(String[] args) {
Flower f = new Flower();
Beeb1 = new Bee("B1");
Beeb2 = new Bee("B2");
f.open();
f.close();
f.open();
System.out.println("c'estbon");
}
}
theXML file:
<?xmlversion="1.0" encoding="UTF-8"?>
<aop>
<introductionclass="Bee.Bee">
<mixin>
<interfaces>Bee.FlowerObserver</interfaces>
<class>Bee.BeeObserver</class>
<construction>new Bee.BeeObserver(this)</construction>
</mixin>
</introduction>
<aspect class="Bee.BeeObserver"/>
<bind pointcut="set(private boolean Bee.Flower->isOpen)">
<after aspect="Bee.BeeObserver" name="update"/>
</bind>
</aop>
This code contains several errors!! but I would have the following result:
B1 Bee's breakfast time!
B2 Bee's breakfast time!
B1 Bee's bed time!
B2 Bee's bed time!
B1 Bee's breakfast time!
B2 Bee's breakfast time!
Tahnk's in advance :)