아님말고
게시판 설계하기 2 본문
factory
- Field
- Page
- Factory
tableFactory
- TableTitle
- TableWriter
- TablePageList
- TablePage
- TabeFactory
게시판 종류에 따라 파일 업로드 기능이 있는 게시판, 없는 게시판 등등..
이러한 기능을 충족시키기 위해 필드를 종류별로 클래스로 만들고
페이지에서 필요한 필드들을 객체로 만들어 조합하는 식의 게시판을 짜고 있습니다.
문제는 페이지를 하나 생성할때마다 필드 객체가 많이 생성되는 것 같아
flyweight 패턴을 적용해서 필드의 인스턴스를 관리하려는데
글수정하기 페이지 같은 경우 필드에 값을 넣어줘야 하는데
pool에서 필드 인스턴스를 가져와 페이지를 만들다 보니
값을 넣어줄 수가 없네요.
좋은 방법이 없을까요?
아래는 대략적인 생각을 소스로 짜보았습니다.
//필드 클래스
abstract class Field{
abstract String caption;
public Field(String caption){
this.caption = caption;
}
public abstract String makeHTML();
}
//화면 클래스
abstract class Page{
ArrayList content = new ArrayList();
public List add(Field field){
content.add(field);
}
public abstract String makeHTML();
}
abstract class Factory{
public static Factory getFactory(String classname);
public abstract Field createField(String caption, String value);
public abstract Field createPage();
}
//제목 필드 클래스
class TableTitle extends Field{
String value;
public TitleField(String caption, String value){
super(caption);
this.value = value;
}
public String makeHTML(){
return "<input type=text name=title value=" + value + ">";
}
}
//작성자 필드 클래스
class TableWriter extends Field{
.........
}
'Etc' 카테고리의 다른 글
기타 IT 용어 정리 (0) | 2023.03.10 |
---|---|
게시판 설계하기 3 (0) | 2009.03.19 |
게시판 설계 하기 1 (0) | 2009.03.19 |