Итак, у меня есть объект PageItem, который я хочу использовать в другом месте.
Я в рамках ABC.
Вот интерфейс PageItem:
public interface PageItem {
public abstract String getUrl();
public abstract boolean getIsCurrent();
public abstract PageItem getParent();
public abstract List<PageItem> getPChildren();
public abstract void setParent(PageItem pageItem);
public abstract void addChild(PageItem pageItems);
public abstract boolean getHasSelectedChild();
}
Вот реализация:
public class PageItemImpl implements PageItem {
private String title = "";
private String url = "";
private boolean isCurrent = false;
private List<PageItem> children = new ArrayList<PageItem>();
private PageItem parent = null;
public String getUrl() {
return url;
}
public boolean getIsCurrent() {
return isCurrent;
}
public List<PageItem> getChildren() {
return children;
}
public PageItem getParent() {
return parent;
}
public void setUrl(String url) {
this.url = url;
}
public void setIsCurrent(boolean isCurrent) {
this.isCurrent = isCurrent;
}
public void setParent(PageItem parent) {
this.parent = parent;
}
public void addChild(PageItem pageItem) {
this.children.add(pageItem);
}
public boolean getHasSelectedChild() {
return false;
}
}
Вот фабрика:
public class PageItemFactory {
public static PageItem getPageItem(ABCPage page, ABCRequestParams params) throws ABCException {
PageItemImpl pageItem = new PageItemABCImpl();
pageItem.setTitle(page.getTitle());
pageItem.setUrl(page.getUrl());
pageItem.setIsCurrent(params.getUrl().equals(page.getUrl());
return pageItem;
}
}
Это я или нет смысла?
PageItemFactory не будет использоваться повторно в других местах, поскольку содержит ссылки на платформу ABC.
Должен ли я просто создать класс, который переопределяет PageItem, и использовать конструктор для определенных параметров ABC?