2004-10-29

Factory範例圖 by shumi


List1 Product類別
package framework;

public abstract class Product{
   public abstract void use();
}
List2 Factory類別
package framework;

public abstract class Factory{

   private Product lnkProduct;

   public final Product create(String owner){
      Product p = createProduct(owner);
      registerProduct(p);
      return p;
   }

   protected abstract Product createProduct(String owner);

   protected abstract void registerProduct(Product product);

}
List3 IDCard類別
package idcard;
import framework.*;

public class IDCard extends Product{
   private String owner;

   IDCard(String owner){
      System.out.println("建立" + owner + "的卡。");
      this.owner = owner;
   }

   public void use(){
      System.out.println("使用" + owner + "的卡。");
   }

   public String getOwner(){
      return owner;
   }
}
List4 IDCardFactory類別
package idcard;
import framework.*;
import java.util.*;

public class IDCardFactory extends Factory{

   private IDCard lnkIDCard;
   private Vector owners = new Vector();

   protected Product createProduct(String owner){
      return new IDCard(owner);
   }
   protected void registerProduct(Product product){
      owners.add(((IDCard)product).getOwner());
   }
   public Vector getOwners(){
      return owners;
   }

}
List5 Main類別
import framework.*;
import idcard.*;

public class Main{

   public static void main(String[] args){
      Factory factory = new IDCardFactory();
      Product card1 = factory.create("結城浩");
      Product card2 = factory.create("戶村");
      Product card3 = factory.create("佐藤花子");
      card1.use();
      card2.use();
      card3.use();
   }
}

Template架構圖 by shumi


Template範例圖 by shumi


List1 AbstractDisplay類別
public abstract class AbstractDisplay{

   public abstract void open();

   public abstract void print();

   public abstract void close();

   public final void display(){
      open();
      for(int i = 0; i < 5; i++){
         print();
      }
      close();
   }
}
List2 CharDisplay類別
public class CharDisplay extends AbstractDisplay{
   private char ch;

   public CharDisplay(char ch){
      this.ch = ch;
   }

   public void open(){
      System.out.print("<<");
   }

   public void print(){
      System.out.print(ch);
   }

   public void close(){
      System.out.println(">>");
   }
}
List3 StringDisplay類別
public class StringDisplay extends AbstractDisplay{
   private String string;
   private int width;

   public StringDisplay(String string){
      this.string = string;
      this.width = string.getBytes().length;
   }

   public void open(){
      printLine();
   }

   public void print(){
      System.out.println("|" + string + "|");
   }

   public void close(){
      printLine();
   }

   private void printLine(){
      System.out.print("+");
      for(int i = 0; i < width; i++){
         System.out.print("-");
      }
      System.out.println("+");
   }
}
List4 Main類別
public class Main{

   public static void main(String[] args){
      AbstractDisplay d1 = new CharDisplay('H');
      AbstractDisplay d2 = new StringDisplay("Hello, world.");
      AbstractDisplay d3 = new StringDisplay("您好。");
      d1.display();
      d2.display();
      d3.display();
   }
}

2004-10-26

2004-10-22

成員ID

目前我們Party506 Blog的成員ID

  • anshon
  • fansia_yen
  • queena-yin
  • shumi_chun
  • swanky-hsiao
  • yann_fang
也就是大家登入Blogger的ID啦~
不要連密碼都忘掉了喔... @.@"

第二個作業

就是今天大家練習的東西
Hello JSP Using Eclipse這個教學中的最後一個使用JSTL執行成功的JSP頁面
裡面輸入自己的名字,貼出來就可以了~

還有我已經幫大家改好標題了
以後交作業的標題後面就加上一個by 作者
Design Pattern的作業
如果是範例圖的話
要加上程式碼
記得程式碼要用<pre></pre>包起來才能固定格式喔~

2004-10-15