Java 之 23 种设计模式解析——1.工厂方法模式(Factory Method)

1、工厂方法模式(Factory Method

简单工厂模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?就用到工厂方法模式, 创建一个工厂接口和创建多个工厂实现类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了, 不需要修改之前的代码。

请看例子:

[java] view plaincopy

 

1. public interface Sender {

2. public void Send();

3. }

两个实现类:

[java] view plaincopy

 

1. public class MailSender implements Sender {

2. @Override

3. public void Send() {

4. System.out.println("this is mailsender!");

5. }

 

6. }

[java] view plaincopy

 

1. public class SmsSender implements Sender {

2.

3. @Override

4. public void Send() {

5. System.out.println("this is sms sender!");

6. }

7. }

两个工厂类:

[java] view plaincopy

 

1. public class SendMailFactory implements Provider {

2.

 

3. @Override

4. public Sender produce(){

5. return new MailSender();

6. }

7. }

[java] view plaincopy

 

1. public class SendSmsFactory implements Provider{

2.

3. @Override

4. public Sender produce() {

5. return new SmsSender();

6. }

7. }

在提供一个接口:

[java] view plaincopy

 

1. public interface Provider {

2. public Sender produce();

3. }

测试类:

[java] view plaincopy

 

1. public class Test {

2.

3. public static void main(String[] args) {

4. Provider provider = new SendMailFactory();

5. Sender sender = provider.produce();

6. sender.Send();

7. }

8. }

其实这个模式的好处就是,如果你现在想增加一个功能:发及时信息,则只需做一个实现类,实现 Sender 接口,同时做一个工厂类,实现 Provider 接口,就 OK 了,无需去改动现成的代码。这样做,拓展性较好!

 

目录:(点击进入相应页面)

概述、六大原则

一、创建模式

0、简单工厂模式

1.工厂方法模式(Factory Method)

2、抽象工厂模式

3、单例模式(Singleton)

4、建造者模式(Builder)

5、原型模式(Prototype)

二、结构模式(7种)

6、适配器模式

7、装饰模式(Decorator)

8、代理模式(Proxy)

9、外观模式(Facade)

10、桥接模式(Bridge)

11、组合模式(Composite

12、享元模式(Flyweight)

三、关系模式(11种)

13、策略模式(strategy)

14、模板方法模式(Template Method)

15、观察者模式(Observer)

16、迭代子模式(Iterator)

17、责任链模式(Chain of Responsibility)

18、命令模式(Command)

19、备忘录模式(Memento

20、状态模式(State)

21、访问者模式(Visitor)

22、中介者模式(Mediator)

23、解释器模式(Interpreter)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值