1. com.cleversoft.designpatterns.builder2.PostalClert.java:
500)this.width=500" align=top border=0>
public class PostalClert {
public void construct(LetterBuilder letterBuilder) {
letterBuilder.buildEnvelop();
letterBuilder.buildStamp();
}
}
2. com.cleversoft.designpatterns.builder2.LetterBuilder.java:
500)this.width=500" align=top border=0>
public abstract class LetterBuilder {
public abstract void buildEnvelop();
public abstract void buildStamp();
public abstract Letter getLetter();
}
3. com.cleversoft.designpatterns.builder2.OrdinaryMailBuilder.java:
500)this.width=500" align=top border=0>
public class OrdinaryMailBuilder extends LetterBuilder {
private Letter ordinaryMail = new OrdinaryMail();
public void buildEnvelop() {
ordinaryMail.add("ordinaryEnvelop", 0.1);
}
public void buildStamp() {
ordinaryMail.add("ordinaryStamp", 1.0);
}
public Letter getLetter() {
return ordinaryMail;
}
}
4. com.cleversoft.designpatterns.builder2.RegisteredLetterBuilder.java:
500)this.width=500" align=top border=0>
public class RegisteredLetterBuilder extends LetterBuilder {
private Letter registeredLetter = new RegisteredLetter();
public void buildEnvelop() {
registeredLetter.add("registeredEnvelop", 2.0);
}
public void buildStamp() {
registeredLetter.add("registeredStamp", 15.0);
}
public Letter getLetter() {
return registeredLetter;
}
}
5. com.cleversoft.designpatterns.builder2.Letter.java:
500)this.width=500" align=top border=0>
public interface Letter {
public abstract void add(String type, double price);
public abstract void list();
}
6. com.cleversoft.designpatterns.builder2.OrdinaryMail.java:
500)this.width=500" align=top border=0>
500)this.width=500" align=top border=0>import java.util.Enumeration;
500)this.width=500" align=top border=0>import java.util.Hashtable;
500)this.width=500" align=top border=0>
public class OrdinaryMail implements Letter {
Hashtable<String, Double> letter = new Hashtable<String, Double>();
/*
* (non-Javadoc)
*
* @see com.cleversoft.designpatterns.builder2.ILetter#add(java.lang.String,
* double)
*/
public void add(String type, double price) {
letter.put(type, price);
}
/*
* (non-Javadoc)
*
* @see com.cleversoft.designpatterns.builder2.ILetter#show()
*/
public void list() {
System.out.println("Ordinary Letter List/n");
Enumeration keys = letter.keys();
while (keys.hasMoreElements()) {
String key = keys.nextElement().toString();
String value = letter.get(key).toString();
System.out.println(key + " " + value + "元");
}
}
}
7. com.cleversoft.designpatterns.builder2.RegisteredLetter.java:
500)this.width=500" align=top border=0>
500)this.width=500" align=top border=0>import java.util.Enumeration;
500)this.width=500" align=top border=0>import java.util.Hashtable;
500)this.width=500" align=top border=0>
public class RegisteredLetter implements Letter {
Hashtable<String, Double> letter = new Hashtable<String, Double>();
/*
* (non-Javadoc)
*
* @see com.cleversoft.designpatterns.builder2.ILetter#add(java.lang.String,
* double)
*/
public void add(String type, double price) {
letter.put(type, price);
}
/*
* (non-Javadoc)
*
* @see com.cleversoft.designpatterns.builder2.ILetter#show()
*/
public void list() {
System.out.println("Registered Letter List/n");
Enumeration keys = letter.keys();
while (keys.hasMoreElements()) {
String key = keys.nextElement().toString();
String value = letter.get(key).toString();
System.out.println(key + " " + value + "元");
}
}
}
8. com.cleversoft.designpatterns.builder2.Main.java:
500)this.width=500" align=top border=0>
public class Main {
public static void main(String[] args) {
LetterBuilder lb = new OrdinaryMailBuilder();
PostalClert pc = new PostalClert();
pc.construct(lb);
Letter l = lb.getLetter();
l.list();
}
}