面试重点:设计模式(三)——工厂方法
创建模式——工厂方法
本文解决上需要修改简单工厂的问题,增加东西,工厂要改代码。
简单来说就是将工厂变成接口:
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();
但是需要了解工厂的类,不符合迪米特法则,而且每个产品一个工厂很麻烦,之后就要用到抽象工厂。