Android 设计模式入门到精通之二:工厂方法模式(Factory Pattern)

设计模式项目源码请移步:https://github.com/caobaokang419/WeatherApp(欢迎Github Fork&Star,代码设计模式&框架设计实现不妥之处,请帮忙指正),谢谢!

 

工厂方法(Factory Pattern

Define an interface for creating an object,but let subclasses decide which class toinstantiate.Factory Method lets a class defer instantiation to subclasses.

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

 

简单工厂方法(Simple Factory Method,也叫静态工厂)

用一个工厂类去封装new的工厂,返回新建的一个对象的引用。如果这个方法是静态的,就称之为静态工厂。

 

工厂方法模式

在父类声明一个final方法用来真正被外部调用(在子类中被继承但是不允许覆盖)。在这个方法中调用一个抽象方法去具体实现新建对象,可是这个抽象方法本身由子类实现。

 

JDK: 

• java.lang.Object#toString() (在其子类中可以覆盖该方法)

• java.lang.Class#newInstance()

• java.lang.Integer#valueOf(String) (Boolean, Byte,Character,Short, Long, Float 和 Double与之类似)

• java.lang.Class#forName()

• java.lang.reflect.Array#newInstance()

• java.lang.reflect.Constructor#newInstance()

 

Android: 

public class DownloadFactory {
    public enum DownloadType {
        TYPE_DOWNLOAD_XUTILS,
        TYPE_DOWNLOAD_ORIGIN;
    }

    public static IDownload createDownloadImpl(DownloadType type){//封装不同类型的对象创建        if(type == DownloadType.TYPE_DOWNLOAD_XUTILS){
            return new XUtilsDownloadImpl();
        }else{
            return new OriDownloadImpl();
        }
    }
}
    原文作者:CBK888666
    原文地址: https://blog.csdn.net/cbk861110/article/details/88071015
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞