设计模式之原型模式

来源:互联网 发布:浙大软件学院研究生 编辑:程序博客网 时间:2024/04/25 13:09
  • 原型模式介绍
          原型二字表明了该模式应该有一个样板实例,用户从这个样板对象中复制出一个内部属性一致的对象,这个过程我们称之为“克隆”。被复制的实例就是我们所称为的原型。
  • 原型模式定义
          用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象
  • 模式的使用场景
    1. 类初始化需要消化非常多的资源,这个资源包括数据、硬件资源等,通过原型拷贝,避免这些消耗
    2. 通过new产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式
    3. 一个对象需要提供给其他对象访问,而且各个调用者可能都需要修改其值时,可以考虑用原型模式拷贝多个对象供调用者使用,即保护性拷贝
  • Android源码中的模式实现
           Intent使用了原型模式:           
Uri uri = Uri.parse("smato:0800000123");
Intent shareIntent = new Intent(Intent.ACTION_SENDTO,uri);
shareIntent.putExtra("sms_body","The SMS text");

Intent i = (Intent)shareIntent.clone();
startActivity(i);
  • 优点与缺点
    • 优点:原型模式是在内存二进制流的拷贝,要比直接new一个对象性能好很多,特别是要在一个循环体内产生大量的对象时,原型模式可以更好的体现其优点
    • 缺点:直接在内存中拷贝,构造函数是不会执行的。缺点是减少了约束    
     
          
0 0
原创粉丝点击