浅析几种Android设计模式

来源:互联网 发布:mac关机快捷键是什么 编辑:程序博客网 时间:2024/06/09 22:10

单例模式

确保单例类只有一个实例,并且这个单例类提供一个函数接口让其他类获取到这个唯一的实例。

相对完美的单例写法

public class Singleton{    private volatile static Singleton instance;//volatile修饰会去堆里拿最新的数据    //将默认的构造函数私有化,防止其他类手动new    private Singleton(){};    public static Singleton getInstance(){    if(instance==null){        sychronized(Singleton.class){            if(instance==null)                instance=new Singleton();        }    }    return instatnce;    }}

Builder模式

主要是在创建某个对象时,需要设定很多的参数(通过setter方法),但是这些参数必须按照某个顺序设定,或者是设置步骤不同会得到不同结果。这主要是用于链式调用,这也是Builder设计模式中的一个很明显的特征。

public class MyBuilder{private int id;private String num;public MyData build(){    MyData d=new MyData();    d.setId(id);    d.setNum(num);    return t;}public MyBuilder setId(int id){    this.id=id;    return this;}public MyBuilder setNum(String num){    this.num=num;    return this;}}public class Test{public static void  main(String[] args){    MyData d=new MyBuilder().setId(10).setNum("hc").build();}}

工厂模式

定义一个创建对象的接口,让子类决定实例化哪个类(策略模式、状态模式类似)

public abstract class Product{public abstract void method();} public class ConcreteProductA extends Prodect{public void method(){    System.out.println("我是产品A!");    }}public class ConcreteProductB extends Prodect{public void method(){    System.out.println("我是产品B!");    }}public  abstract class Factory{    public abstract Product createProduct();}public class MyFactory extends Factory{    public Product createProduct(){        return new ConcreteProductA();    }}

文章内容部分引用:http://www.jianshu.com/p/1a9f571ad7c0

原创粉丝点击