面試重點:設計模式(三)——工廠方法

dark_Souls發表於2018-11-21

    

   建立模式——工廠方法 

   本文解決上需要修改簡單工廠的問題,增加東西,工廠要改程式碼。

    簡單來說就是將工廠變成介面:

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();

 但是需要了解工廠的類,不符合迪米特法則,而且每個產品一個工廠很麻煩,之後就要用到抽象工廠。

 


相關文章