创建对象的考虑

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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:5260958次
    • 积分:64813
    • 等级:
    • 排名:第29名
    • 原创:1203篇
    • 转载:22篇
    • 译文:1篇
    • 评论:1140条
    文章分类
    最新评论
    算法专家朋友的博客
    清如许的博客