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