zoukankan      html  css  js  c++  java
  • D365 FO最佳实践BP(七)-构造函数应该Protected

    BPErrorClassNewNotProtected: The constructor (i.e. the 'new' method) should be protected. In addition, private constructors are allowed on final classes.
    如果类的new方法定义为public,会报上述BP。
    提示也很明确,类的构造函数new方法,应该是protected,另外,如果类是final的,构造函数也可以是private的。
    第二句容易理解,如果一个类不是final,但是构造函数new是private的,子类都没办法实例化了,所以如果要定义private类型的构造函数,只能是不可继承的类。
    第一句,为什么AX要推荐使用protected类型的new方法。
    因为X++不支持方法的重载,构造函数也只能有一个new方法,所以AX推荐的做法是
    1.new方法设置为protected(如果是final类,也可以设置为private)
    2.new方法不带任何参数
    3.使用new*静态方法
    4.通过parm方法给相应的变量赋值
    这样如果类有多个不同的入参,可以定义多个静态的new*方法,*可以用描述性的词语来代替,这样的做法使得累的实例化更加具有描述性。
    当然如果一个类特别简单,不可能有多个入参,直接用new也不是什么大问题,要不然就弄成一个protected的,然后加一个public的静态construct方法。

  • 相关阅读:
    poj 1026 Cipher
    python中的global
    基于DL的文本分类综述
    K近邻算法学习
    聚类评价指标学习
    pytorch自动求导学习
    反向传播的推导
    二分搜索常用【转载】
    《Attention is all you need》论文学习
    5-28日|5-30日
  • 原文地址:https://www.cnblogs.com/Farseer1215/p/13062391.html
Copyright © 2011-2022 走看看