zoukankan      html  css  js  c++  java
  • 1.考虑用静态方法代替构造函数

    好处:

    • 静态方法有名称
    • 不必在每次调用时都创建一个新的对象
    • 可以返回原返回类型的任何子类型的对象
    • 可以自动类型推导,使代码简洁

    缺点:

    • 如果类不含共有的或者被保护的构造函数,则不能被子类化
    • 他们与其他的静态方法实际上没有任何区别

    好处1:静态方法有名称

    • 对于客户端来说更易于使用和阅读
    • 用名字来区分出不同方法之间的区别,而不是通过参数类型再顺序上的不同;

    好处2:不必在每次调用时都创建一个新的对象

    • 预先构建好实例或缓存起来重复利用,非常有利于经常请求创建相同的对象且创建对象的代价很高的场景;
    • 实例受控,

    好处3:可以返回原返回类型的任何子类型的对象

    • 这个特性很牛逼,可以返回非共有的类的实例,用接口引用就好了。这样的好处是API数量的减少,而且返回的类还可以发生变化(因为非共有类),可随版本变更(当有更好的实现时,服务提供端直接替换掉,而客户端没有丝毫反应)。
    • 服务提供者框架

    好处4:可以自动类型推导,使代码简洁

    • 利用范型方法,减少类型参数的编写,不过现版本jdk(8)的构造函数已经支持类型推导了。

    缺点1: 如果类不含共有的或者被保护的构造函数,则不能被子类化

    • 一定意义上也是优点,java鼓励使用组合而不是继承

    缺点2: 他们与其他的静态方法实际上没有任何区别

    • 没办法像构造函数那样在java doc种单独的展示出来,必须在类或者接口的注释里写清楚哪些方法是静态工厂方法,便于让客户端快速定位到相关方法。
    • 尽量使用约定俗成的那些方法名。比如newInstance()等。
  • 相关阅读:
    [SDOi2012]Longge的问题(洛谷 2303)
    Biorhythms(信息学奥赛一本通 1639)
    【NOI2002】荒岛野人(信息学奥赛一本通 1637)(洛谷 2421)
    青蛙的约会(信息学奥赛一本通 1631)(洛谷 1516)
    负数求余究竟怎么求???
    X-factor Chain(信息学奥赛一本通 1628)
    同余问题2(超详细!!!)
    map函数怎么用咧↓↓↓
    同余问题1(超详细!!!)
    python -- 连接 orclae cx_Oracle的使用 二
  • 原文地址:https://www.cnblogs.com/po-shi/p/12852300.html
Copyright © 2011-2022 走看看