当前位置 博文首页 > 文章内容

    设计模式:工厂方法模式

    作者: 栏目:未分类 时间:2020-08-29 10:00:42

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    一.

      在工厂方法模式种,不再由单一的工厂类生产产品,而是由工厂类的子类实现具体产品的创建。当增加一个产品时,只需要增加一个相应的工厂类的子类,实现生产这种产品,便可以解决简单工厂生产太多产品导致其内部代码臃肿的问题。

    二.通用写法

    抽象产品:

    public interface IProduct {
        public void doService();
    }
    

     实现抽象产品:

    public class ProductA implements IProduct {
        @Override
        public void doService() {
            System.out.println("ProductA");
        }
    }
    public class ProductB implements IProduct {
        @Override
        public void doService() {
            System.out.println("ProductB");
        }
    }
    

    抽象工厂:

    public interface IFactory {
        public IProduct produce();
    }
    

    实现抽象工厂:

    public class FactoryA implements IFactory {
        @Override
        public IProduct produce() {
            return new ProductA();
        }
    }
    
    public class FactoryB implements IFactory {
        @Override
        public IProduct produce() {
            return new ProductB();
        }
    }
    

     测试:

    public class Test {
        public static void main(String[] args) {
            IFactory factory = new FactoryA();
            IProduct product = factory.produce();
            product.doService();
        }
    }
    

     

     

    3.uml类图

     

     该模式的缺点:

    1.类的个数过多,增加复杂度

    2.抽象产品只能生产一种产品,可以用抽象工厂模式解决

    3.增加系统的抽象性和理解难度。