创建对象的考虑

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

转载于:https://www.cnblogs.com/believeit/archive/2007/09/19/2183628.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值