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

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

        }

    }

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容