Android 设计模式

  1. 单例模式
  2. 建造者模式
  3. 观察者模式
  4. 策略模式
  5. 原型模式

单例模式:动态确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。

优点:

  • 单例模式在内存中只有一个实例,减少了内存开销。对于 那些耗内存的类,只实例化一次,可以大大的提高性能。
  • 单例模式可以避免对资源的多重利用,例如写一个文件时,由于只有一个实例存在内存中,避免对同一个资源文件的同时写操作。
  • 单例模式可以在系统设置全局的访问点,优化和共享资源访问。
双重检查锁:

public class Singleton {    
    private static volatile Singleton instance = null;    
    
    private Singleton(){}    
     
    public static Singleton getInstance() {    
        if (instance == null) {    
            synchronized (Singleton.class) {    
                if (instance == null) {    
                    instance = new Singleton();    
                }    
            }    
        }    
        return instance;    
    }    
}    
饿汉法:


public class Singleton{
private stsatic Singleton = new Singleton();
private Singleton(){}
   public static getSingleton(){

    return singleton();
                        }
    }
单线程写法:

public class Singleton {
    private static Singleton singleton = null;
    private Singleton(){}
    public static Singleton getSingleton() {
        if(singleton == null) singleton = new Singleton();
        return singleton;
    }
}

 

建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

Android 对话框的创建的代码实现就是用的Builder模式,如:

AlertDialog.Builder builder=new AlertDialog.Builder(this);    
AlertDialog dialog=builder.setTitle("对话框")    
        .setIcon(android.R.drawable.ic_dialog)    
        .setView(R.layout.custom_view)    
        .setPositiveButton(R.string.positive, new DialogInterface.OnClickListener() {    
            @Override    
            public void onClick(DialogInterface dialog, int which) {    
    
            }    
        })    
        .setNegativeButton(R.string.negative, new DialogInterface.OnClickListener() {    
            @Override    
            public void onClick(DialogInterface dialog, int which) {    
    
            }    
        })    
        .create();    
dialog.show();

 

观察者模式:定义对象间一种一对多哦的依赖关系,使得当一个对象改变状态,则所有依赖于他的对象都会得到通知并被自动更新。

使用观察者模式的Android应用有: 广播、EventBus等(基于注册register和解注册unregister的基本属于)

 

策略模式:定义了一系列算法,并将每一个算法封装起来,而且使他们可以互相替换,策略模式让算法独立于使用的客户而独立改变。

 

原型模式:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值