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