美文网首页Android设计模式:入门到精通
Android 设计模式入门到精通之二:工厂方法模式(Facto

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

作者: 编程家园 | 来源:发表于2020-02-04 10:51 被阅读0次

工厂方法(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();

        }

    }

}

相关文章

网友评论

    本文标题:Android 设计模式入门到精通之二:工厂方法模式(Facto

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