面试重点:设计模式(三)——工厂方法

    

   创建模式——工厂方法 

   本文解决上需要修改简单工厂的问题,增加东西,工厂要改代码。

    简单来说就是将工厂变成接口:

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

 但是需要了解工厂的类,不符合迪米特法则,而且每个产品一个工厂很麻烦,之后就要用到抽象工厂。


原文地址:https://www.cnblogs.com/lzy321/p/9995774.html