Android常见设计模式—工厂模式

作者: 大漠孤烟直_v | 来源:发表于2020-03-12 16:51 被阅读0次

普通工厂:

含义:定义一个用于创建对象的接口,让子类决定实例化哪个类。工厂方法使一个类的实例化延迟到其子类。对同一个接口的实现类进行管理和实例化创建。

假设我们有这样一个需求:
动物Animal,它有行为move()。有两个实现类catdog。为了统一管理和创建我们设计一个工厂模式。 同时两个子类有各自的行为,CateatFish()DogeatBone().

public interface Animal {

    void move();
}
public class Cat implements Animal {
    @Override
    public void move() {
        System.out.println("我是只肥猫,不爱动");
    }

    public void eatFish() {
        System.out.println("爱吃鱼");
    }
}
public class Dog implements Animal {
    @Override
    public void move() {
        System.out.println("我是狗,跑的快");
    }

    public void eatBone() {
        System.out.println("爱吃骨头");
    }
}
public class Factory {

    public static Cat produceCat() {
        return new Cat();
    }

    public static Dog produceDog() {
        return new Dog();
    }
}

使用:

Animal cat = Factory.produceCat();
cat.move();
Dog dog = Factory.produceDog();
dog.eatBone();
dog.move();

工厂模式在业界运用十分广泛,如果都用new来生成对象,随着项目的扩展,animal还可以生出许多其他儿子来,当然儿子还有儿子,同时也避免不了对以前代码的修改(比如加入后来生出儿子的实例),怎么管理,想着就是一团糟。
Animal cat = Factory.produceCat();
这里实例化了Animal但不涉及到Animal的具体子类(减少了它们之间的偶合联系性),达到封装效果,也就减少错误修改的机会。

一般来说,这样的普通工厂就可以满足基本需求。但是我们如果要新增一个Animal的实现类panda,那么必然要在工厂类里新增了一个生产panda的方法。就违背了 闭包的设计原则(对扩展要开放对修改要关闭) ,于是有了抽象工厂模式。

抽象工厂

含义:抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。   啥意思?就是把生产抽象成一个接口,每个实例类都对应一个工厂类(普通工厂只有一个工厂类),同时所有工厂类都继承这个生产接口

public interface Provider {

    Animal produce();
}
public class CatFactory implements Provider {
    @Override
    public Animal produce() {
        return new Cat();
    }
}

使用:

Provider catFactory = new CatFactory();
Animal cat = catFactory.produce();
cat.move();

现在我们要加入panda,直接新建一个pandaFactory就行了,这样我们系统就非常灵活,具备了动态扩展功能。

Android中的Factory:AsyncTaskBitmapFactory

相关文章

  • Android 工厂模式

    Android 工厂模式 Android 23种设计模式 前言 工厂模式是创建型模式,使我们常用/常见的模式之一。...

  • 单件设计模式

    一、定义 设计模式 设计模式就是一种更好的编写代码方案。 常见设计模式 工厂设计模式、抽象工厂设计模式、抽象工厂设...

  • spring 设计模式篇(前)

    设计模式俗称:套路 一、spring常见设计模式 (23种设计模式) 创建型:工厂方法模式、抽象工厂模式、建造者...

  • 简单工厂模式

    Android进阶之设计模式 简单工厂模式 简单工厂模式(又叫作静态工厂方法模式), 其属于创建型设计模式,但并不...

  • Android常见设计模式—工厂模式

    普通工厂: 含义:定义一个用于创建对象的接口,让子类决定实例化哪个类。工厂方法使一个类的实例化延迟到其子类。对同一...

  • 工厂模式-简单工厂模式、工厂方法模式、抽象工厂模式

    工厂模式 工厂模式是一种比较常见的创建型设计模式,分为简单工厂模式、工厂方法模式、抽象工厂模式 工厂模式旨在把对象...

  • Android设计模式-模版方法模式

    UML关系简单介绍UML简单使用的介绍创建型设计模式Android设计模式-单例模式Android设计模式-工厂模...

  • Android设计模式-迭代器模式

    UML关系简单介绍UML简单使用的介绍创建型设计模式Android设计模式-单例模式Android设计模式-工厂模...

  • Android设计模式-享元模式

    UML关系简单介绍UML简单使用的介绍创建型设计模式Android设计模式-单例模式Android设计模式-工厂模...

  • Android设计模式-桥接模式

    UML关系简单介绍UML简单使用的介绍创建型设计模式Android设计模式-单例模式Android设计模式-工厂模...

网友评论

    本文标题:Android常见设计模式—工厂模式

    本文链接:https://www.haomeiwen.com/subject/jkdmjhtx.html