zoukankan      html  css  js  c++  java
  • Tips1:考虑用静态工厂方法代替构造器

    用静态工厂方法来代替构造器为外界提供对象

    描述:

    • 静态工厂方法代替构造器来给外界提供对象,创建对象依然是由构造器来完成的
    • 创建对象和提供对象:
      • 创建对象的方式:
        • 构造器
      • 提供对象来哦方式:
        • 构造器
        • 类中公有的静态方法
    • 一般在使用静态工厂方法时,会根据方法的需要提供private的构造器
    • 静态方法=类方法
      • 因为需要类来调用,所以需要static

    用途(优点):

    1. 有便于分辨的名字
      • 解释:
        • 构造器和类同名,当存在多个构造器时,用户不便分辨各个构造器的作用
        • 静态工厂方法可以根据功能自定义方法名
      • tips:
        • 当一个类有多个构造器时,建议使用静态工厂方法来提供对象
    2. 不用每次都创建一个对象,单例
      • 解释:
        • 可以避免多次创建对象,节省资源消耗,单例
    3. 可以return该类的任何子类
    4. 解决参数列表相同但意义不同的构造函数不能同时出现的缺陷
      • 解释:
        • Person(String job)、Person(String name)这两个构造函数是不能同时存在的
        • 静态工厂
          • public static Person PersonWithName(String name)
          • public static Person PersonWithJob(String job)
    5. 控制参数,从做填空到做选择
      • 解释:
        • Person("male")、Person("female"),调用者需要自己提供性别这两个参数
        • 静态工厂:
          • public static Person aMale(){return new Person("male")}
    蚓无爪牙之利,筋骨之强,上食埃土,下饮黄泉,用心一也
  • 相关阅读:
    codeforces 666C Codeword
    codeforces 156D Clues(prufer序列)
    codeforces 633E Startup Funding(浮点数处理)
    codeforces 932E Team Work(组合数学、dp)
    codeforces 1000F One Occurrence(线段树、想法)
    codeforces 812E Sagheer and Apple Tree(思维、nim博弈)
    写点文字
    00000
    省选前干些奇怪的事情
    PE415
  • 原文地址:https://www.cnblogs.com/liusai/p/9676575.html
Copyright © 2011-2022 走看看