• 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方法。

  • 相关阅读:
    ucore 物理内存探测 lab2 附录A&B
    git diff 笔记
    操作系统Lab1 详解(boot|kern/debug)
    ucore os 前初始化
    第五讲 计算机体系结构 内存层次
    Django 的学习(1) 从建立到数据库操作
    ucore os 初始化
    操作系统 Lab1
    makefile 语法笔记 3
    flex布局注意事项
  • 原文地址:https://www.cnblogs.com/Farseer1215/p/13062391.html
Copyright © 2020-2023  润新知