建立模式——工廠方法
本文解決上需要修改簡單工廠的問題,增加東西,工廠要改程式碼。
簡單來說就是將工廠變成介面:
ArticleDaoFactory.java
public interface ArticleDaoFactory { public ArticleDao build(); }
MybatisArticleDaoFactory.java
public class MybatisArticleDaoFactory implements ArticleDaoFactory{ @Override public ArticleDao build() { return new ArticleDaoForMybatislmpl(); } }
HibernateArticleDaoFactory.java
public class HibernateArticleDaoFactory implements ArticleDaoFactory{ @Override public ArticleDao build() { return new ArticleDaoForHibernatelmpl(); } }
現在User類裡面會變成如下:
ArticleDao dao1=new MybatisArticleDaoFactory().build();
但是需要了解工廠的類,不符合迪米特法則,而且每個產品一個工廠很麻煩,之後就要用到抽象工廠。