OOAD-设计模式(三)之创建型设计模式(5种)

  前面介绍了OOAD的基础知识,现在我们来详细的说明一下GOF设计模式中的23种模式,希望大家能够学到东西!

一、工厂方法模式(Factory Method) 1.1、工厂方法模式概述

  工厂方法模式属于创建型模式,是简单工厂模式(Simple Factory)的一个升级版。工厂方法模式分为三种:普通工厂模式   多个工厂方法模式   静态工厂方法模式。
    

OOAD-设计模式(三)之创建型设计模式(5种)

  1)角色与职责

    抽象产品: 工厂产物的抽象。工厂所要创建的实例的类都继承于同一个抽象类或者接口

    具体产品: 工厂的具体产品。所有的具体产品都是抽象产品的一个实现类

    抽象工厂: 工厂类的抽象。注意这个抽象工厂就是抽象的工厂的意思,并不是抽象工厂模式(Abstract Factory)的那个抽象工厂

    具体工厂: 创建产品实例的具体工厂类。

  3)适用场景

    创建产品对象的过程比较复杂,客户端并不关心如何创建产品对象,只想使用产品。此外产品的类型比较多,编写代码的时候没有可能去完全枚举所有的具体产品,未来还有可能会增加。

1.2、普通工厂模式

  普通工厂模式:就是建立一个工厂类,对实现了同一接口的产品类进行实例的创建

OOAD-设计模式(三)之创建型设计模式(5种)

OOAD-设计模式(三)之创建型设计模式(5种)

//发送短信和邮件的接口 public interface Sender { public void Send(); } //发送邮件的实现类 public class MailSender implements Sender { public void Send() { System.out.println("发送邮件!"); } } //发送短信的实现类 public class SmsSender implements Sender { public void Send() { System.out.println("发送短信!"); } } //创建工厂类 public class SendFactory { //工厂方法 public Sender produce(String type) { if ("mail".equals(type)) { return new MailSender(); } else if ("sms".equals(type)) { return new SmsSender(); } else { System.out.println("请输入正确的类型!"); return null; } } } //测试类 public class FactoryTest { public static void main(String[] args) { SendFactory factory = new SendFactory(); Sender sender = factory.produce("sms"); sender.Send(); } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwdysp.html