Java设计模式之原型模式

原型模式


模式介绍


模式的定义

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

模式的使用场景

1.类初始化需要消耗非常多的资源,这个资源包括数据,硬件资源等,通过原型拷贝避免这些消耗;

2.通过new产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式;

3.一个对象需要提供给其他对象访问,而且各个调用者可能都需要修改其值时,可以考虑使用原型模式拷贝多个对象供调用者使用,即保护性拷贝。

Android源码中的模式实现

Intent中使用了原型模式

Uri uri = Uri.parse("smsto:0800000123");

Intent shareIntent = new Intent(Intent.ACTION_SENDTO, uri);

shareIntent.putExtra("sms_body", "The SMS text");

Intent intent = (Intent)shareIntent.clone() ;

startActivity(intent);

优点与缺点

优点

原型模式是在内存二进制流的拷贝,要比直接new一个对象性能好很多,特别是要在一个循环体内产生大量的对象时,原型模式可以更好的体现其优点。

缺点

这既是它的优点也是缺点,直接在内存中拷贝,构造函数是不会被执行的,在实际开发当中应该注意这个潜在的问题。优点就是减少了约束,需要大家在实际应用时考虑。

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,251评论 19赞 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 180,601评论 25赞 708
  • 面向对象的六大原则 单一职责原则 所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变,那么这个类就具有多于...
    JxMY阅读 1,056评论 1赞 3
  • 1.什么是Activity?问的不太多,说点有深度的 四大组件之一,一般的,一个用户交互界面对应一个activit...
    JoonyLee阅读 5,923评论 2赞 51
  • “这样说来的话,你仅仅是想要把这些告诉我啦?”我一边用放在桌子上的五根手指依次敲打着大理石桌面,一边仔细打量...
    单纯是一种美阅读 292评论 0赞 0

友情链接更多精彩内容