`
pcpig
  • 浏览: 91258 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

《Effictive Java》Item 1: Consider static factory methods instead of constructors

阅读更多
advantage:
      1st. unlike constructors, they have names.

     2nd. unlike constructors,they are not required to create a new object each time they’re invoked.

     3rd. unlike constructors,they can return an object of any subtype of their return type.
     提供了灵活性,可以隐藏实现细节。可以根据不同的参数采用不同的实现....

     4th. that they reduce the verbosity of creating parameterized type instances.


disadvantage:
      1st.providing only static factory methods is that
classes without public or protected constructors cannot be subclassed.

      2nd.they are not readily distinguishable from other static methods.
    解决办法:1、注释 2、尽量采用通用的命名,比如ValueOf、of、getInstance、newInstance、getType、newType
    
   

   
分享到:
评论

相关推荐

    java相关书籍:并发和effictive java

    该压缩包里含有两本pdf书籍:effictive java第二版和java并发实战,希望能对大家提升技术有所帮助。

    Effictive Java

    《Effective Java》是Java开发领域的一本经典著作,由著名程序员和教育家Joshua Bloch撰写。这本书深入探讨了如何写出高效、可维护且设计优良的Java代码,它基于作者在实际开发中的经验和最佳实践,提供了许多实用的...

    java effective 第二版中英文二份文件

    《Effective Java》是Java编程领域的一本经典著作,由知名程序员Joshua Bloch撰写。这本书主要探讨了如何编写高效、可维护的Java代码,并提出了许多实用的编程实践和设计原则。第二版在第一版的基础上进行了更新,以...

    effictive_Objective_C_2.0.pdf

    effictive_Objective_C_2.0.pdf

    Effictive C# 2th Edition

    1. **类型系统与设计模式**:包括如何充分利用C#的强类型系统,避免类型转换错误;何时使用接口而非抽象类,以及如何适当地应用设计模式以提高代码的可扩展性和复用性。 2. **面向对象编程**:讲解如何有效利用继承...

    Java开发规范参照.pdf

    6. **参考资料**:开发者应参考权威的Java编程指南,如《Java 编程指南》、《Java 技术手册》、《Sun Java 语言编码规范》、《Effictive Java》、《Java Pitfalls》和《Java Rules》,这些书籍提供了丰富的最佳实践...

    Effictive STL CHM中文版

    条款1: 仔细选择你要的容器 条款2: 小心对“容器无关代码”的幻想 条款3: 使容器里对象的拷贝操作轻量而正确 条款4: 用empty来代替检查size是否为0 条款5: 尽量使用范围成员函数代替他们的单元素兄弟 条款6: ...

    effictive中英文

    《Effective STL》是由C++编程大师Scott Meyers撰写的一本经典书籍,分为英文版和中文版,即"Effictive STL CN"和"Effictive STL 英文"。这本书深入探讨了标准模板库(Standard Template Library,简称STL)的高效...

    Effictive C++ (chm)

    1. **内存管理**:Meyers强调了正确处理动态内存的重要性,包括何时使用`new`和`delete`,何时使用智能指针(如`std::unique_ptr`、`std::shared_ptr`)以避免内存泄漏,以及如何理解和使用`std::nothrow`和`...

    effictive c++

    這本書是多年來我對專業程式員所做的C++ 教學課程下的一個自然產物。我發現,大部份學生在一個星期的密集訓練之後,即可適應這個語言的基本架構,但要他們「將這些基礎架構以有效的方式組合運用」,我實在不感樂觀。...

    Effictive Python

    A classical book, which is worth to read. write better.

    Effective CSharp

    1. 使用属性代替可访问的数据成员。属性能够提供封装,并且可以附加访问器逻辑,这有助于维持数据的一致性和完整性。 2. 尽量使用readonly代替const。readonly字段可以在运行时被赋值,而const字段必须在编译时就...

    More Effective C#中文版

    Effective C#中文版 一本能使你的代码更优秀的书

    Effective C++中文版

    例如,`static const int NUM_TURNS = 5;`声明了GamePlayer类中的一个静态整型常量。静态成员变量必须在类的实现文件中定义,但不是初始化。 4. 枚举类型:C++中的枚举可以用来定义一组符号常量,如`enum { NUM_...

    Effective_C++.pdf

    Effective_C++.pdf

    Effective Objective-C

    Effective Objective-C

    effectiveJavaSample

    Effictive Java 学习代码 阅读时,体验,测试用的代码.以及衍生出来的其他学习,练习使用的代码. 部分心得以代码的形式体现,部分心得在代码注释中体现. 欢迎交流指正错误~

Global site tag (gtag.js) - Google Analytics