创建对象的考虑

原创 2007年09月19日 14:39:00
 
       构造函数是java类的最传统创建方式,除此之外,我们还可以选择经典的设计模式,经典的创建型设计模式包含了四种,factory,abstract factory,singleton和prototype。另外,在java中还有一种经常使用的模式---静态工厂方法(我们可以认为这是创建型模式的一种新的补充)。
       什么是静态工厂方法?其实很简单,也就是类的设计者将构造函数设计为保护的或者私有的,而提供静态成员函数负责返回给客户已经创建好的对象。
这样做有什么优点呢?
1)首先引入了静态函数,增加了间接性,这样也就带来了灵活性,这一点和其他的创建型模式一样。设计者可在内部创建单例对象,也可以预先创建,以提高性能,也可以创建子对象,返回父对象的引用。策略非常灵活。
2)普通构造函数名称固定,不如静态函数的函数名称可以随意指定,静态函数的名称可以暗示用户创建的方式,创建的前提条件或者创建返回的结果
 
这样做也有缺点:
静态工厂方法可能会被误认为普通的静态成员函数,因此需要文档明确指出,java世界里已经有了约定俗成的惯用命名,如valueOf和getInstance
 
       那么我们有这么多方式创建一个对象,设计一个类时我们该如何考虑呢?我觉得至少要想一想哪一个更合适,如果没有必需的理由,构造函数作为最普遍的标准方式应该是首选。
 
版权声明:本文为博主原创文章,未经博主允许不得转载。

创建了对嵌入的互操作程序集间接引用,无法嵌入互操作类型

由于程序集“e:\01 北路\01 项目\17 矿用人行车急停系统\客户端程序认证版\ScramVoiceAlarmClient\bin\Debug\AcNetUtils.dll” 创建了对嵌入互操...
  • alisa525
  • alisa525
  • 2014年08月14日 14:33
  • 6252

使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组

顺序查找
  • wugang806894
  • wugang806894
  • 2013年10月13日 17:45
  • 1343

创建索引的条件和注意事项

索引的理解和创建索引应该注意的条件
  • session_Time
  • session_Time
  • 2016年09月21日 12:16
  • 2316

优先用静态方法创建对象,考虑用静态工厂方法代替构造器

优势 能用工厂方法名区别不同的创建语境。 控制创建过程,不必每次都创建一个新对象。 可以创建不同子类的实例,隐藏子类的实现。 服务提供者架构的实现一般需要设计如下组件: - 提供服务的接口Servi...
  • csujiangyu
  • csujiangyu
  • 2015年12月22日 11:30
  • 554

创建对象权限

  • 2012年12月24日 19:05
  • 24KB
  • 下载

JSON法创建对象

  • 2013年04月18日 19:45
  • 2KB
  • 下载

ActiveX部件不能创建对象解决工具

  • 2009年09月17日 15:33
  • 2KB
  • 下载

Emit实现从URL或者表单中创建对象

  • 2015年03月24日 13:28
  • 33KB
  • 下载

Integer创建对象

  • 2013年01月24日 17:36
  • 113KB
  • 下载

ActiveX exe dll注册表修复工具(无法创建对象错误修复)

  • 2017年12月16日 23:58
  • 16KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:创建对象的考虑
举报原因:
原因补充:

(最多只允许输入30个字)