面向对象的设计模式 ——工厂模式

本文探讨了工厂模式和简单工厂模式的区别,重点讲解了工厂模式如何通过接口和多态提高代码的扩展性和降低耦合度,以及其在实例化逻辑上的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工厂模式:创建工厂接口,不同类的的实例化通过实现工厂接口的子工厂类完成。

 具体例子

工厂模式其实就是在简单工厂模式上,把判断实例化的逻辑放到用户代码那边(其实客户代码本来就要判断决定使用哪一个具体类),然后工厂接口化。而保留了实例化封装和克服了开发封闭原则不用每次加新的类都要修改工厂类。(易扩展低耦合)

缺点就是每添加一个新功能类都要多写一个工厂。

简单工厂模式的客户端代码
AAA a1 = new SimpleFactory.Create("A");
a.method()1;
...
AAA a2 = new SimpleFactory.Create("A");
a.method()2;
...
AAA a3= new SimpleFactory.Create("A");
a.method()3;

工厂模式下的客户端代码
Factory factory = new AAAfactory();
AAA a = factory.Create();

a.method1();
a.method2();
a.method2();

从上面的简单工厂模式和工厂模式的客户端代码就明显发现,如果要修改成新创建的功能类的化,工厂模式只要把子工厂类换了就可以,而简单工厂模式因为耦合度比较高就比较麻烦了。(原因是工厂模式的用了接口和多态的特性)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值