最终的静态属性更改..任何想法或方法?

阿克兰(Akram GARGOURI)

我必须维护一个代码,以便为类中的最终静态变量增加更多的灵活性。

该变量不再是全局常数,可以更改。

问题在于该类在一个公共库中,并且在不同的项目中使用。

您是否有比将类代码从通用库复制并粘贴到我的特定应用程序并进行重构更好的方法或设计模式?

例子:

公地项目

Class CommonClass {

    public final static var globalSomething = somethingGlobal;

    public static method(){ //CommonClass.globalSomething is used here}
}

在我的应用程序(和其他引用公用程序的应用程序)中,我们可以使用static属性并调用该方法:

---> var b = CommonClass.somethingGlobal;

---> var c = CommonClass.method() //we know that CommonClass.globalSomething is used here

期望:

  • 能够在我的应用程序中更改CommonClass.somethingGlobal并在调用CommonClass.method()中进行这些更改
  • 我可以在公共类中修改(添加方法),但是我必须保持相同的初始行为(不要破坏引用公共项目的其他项目)
安德烈·斯坦内克

如果我说对了,您想将此作为参数来实现。

看你的例子:

var c = CommonClass.method() //we know that CommonClass.globalSomething is used here

已经有问题了。CommonClass.somethingGlobal在调用该方法之前,您不必知道必须正确设置这样,客户必须知道实现方式,这违反了信息隐藏的原理。如果需要该值,则将其作为参数引入:

Class CommonClass {

    public static void method(var globalSomething){}
}

一种替代方法是使变量和方法均为非静态,并使用构造函数:

Class CommonClass {

    public var globalSomething = somethingGlobal;

    public CommonClass(var globalSomething) {
        this.globalSomething = globalSomething;
    }

    public void method(){}
}

PS:您的示例代码不是Java。我在回答中部分纠正了它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

相对布局中的方向属性是否负责对获得的最终布局视图进行任何更改?

来自分类Dev

如何从静态方法更改C ++中的对象属性

来自分类Dev

是否可以在Lua字节码内更改值?怎么样?任何想法?

来自分类Dev

静态最终double的访问器方法

来自分类Dev

如何模拟返回最终类的静态方法?

来自分类Dev

将静态最终实例变量访问为静态方法错误

来自分类Dev

如何模拟由静态方法设置的最终静态变量?

来自分类Dev

任何想法,而不是<a>赞</a>

来自分类Dev

关于如何具有泛型类,实现协议,将其强制转换为该协议并允许检索属性的任何想法?

来自分类Dev

非静态字段,方法或属性需要对象引用。Label1颜色更改

来自分类Dev

非静态字段,方法或属性需要对象引用。Label1颜色更改

来自分类Dev

通过继承的静态方法更改不可变类型类属性

来自分类Dev

使用静态方法更改静态变量

来自分类Dev

PHP重载静态属性和静态方法

来自分类Dev

如何在最终课程中模拟静态方法

来自分类Dev

在Java / Mockito的最终类中模拟静态方法

来自分类Dev

具有最终静态方法的final类冗余

来自分类Dev

任何退出FOR并打印消息的想法

来自分类Dev

任何想法的PHP代码呢?

来自分类Dev

在Java中使用属性文件* AS *静态最终变量中的属性

来自分类Dev

在Java中使用属性文件* AS *静态最终变量中的属性

来自分类Dev

使用引发异常的方法在静态块中初始化的最终静态变量

来自分类Dev

为什么静态最终变量使用静态方法初始化需要同步?

来自分类Dev

Eclipse在静态方法之前对私有静态最终字段进行排序

来自分类Dev

静态基础构造函数的设计模式,该模型在最终类中调用静态方法

来自分类Dev

从静态块或方法初始化静态最终int并在批注中使用它

来自分类Dev

为什么静态最终变量使用静态方法初始化需要同步?

来自分类Dev

委派任何更改的最佳方法是什么?

来自分类Dev

更改类中任何字段的方法

Related 相关文章

  1. 1

    相对布局中的方向属性是否负责对获得的最终布局视图进行任何更改?

  2. 2

    如何从静态方法更改C ++中的对象属性

  3. 3

    是否可以在Lua字节码内更改值?怎么样?任何想法?

  4. 4

    静态最终double的访问器方法

  5. 5

    如何模拟返回最终类的静态方法?

  6. 6

    将静态最终实例变量访问为静态方法错误

  7. 7

    如何模拟由静态方法设置的最终静态变量?

  8. 8

    任何想法,而不是<a>赞</a>

  9. 9

    关于如何具有泛型类,实现协议,将其强制转换为该协议并允许检索属性的任何想法?

  10. 10

    非静态字段,方法或属性需要对象引用。Label1颜色更改

  11. 11

    非静态字段,方法或属性需要对象引用。Label1颜色更改

  12. 12

    通过继承的静态方法更改不可变类型类属性

  13. 13

    使用静态方法更改静态变量

  14. 14

    PHP重载静态属性和静态方法

  15. 15

    如何在最终课程中模拟静态方法

  16. 16

    在Java / Mockito的最终类中模拟静态方法

  17. 17

    具有最终静态方法的final类冗余

  18. 18

    任何退出FOR并打印消息的想法

  19. 19

    任何想法的PHP代码呢?

  20. 20

    在Java中使用属性文件* AS *静态最终变量中的属性

  21. 21

    在Java中使用属性文件* AS *静态最终变量中的属性

  22. 22

    使用引发异常的方法在静态块中初始化的最终静态变量

  23. 23

    为什么静态最终变量使用静态方法初始化需要同步?

  24. 24

    Eclipse在静态方法之前对私有静态最终字段进行排序

  25. 25

    静态基础构造函数的设计模式,该模型在最终类中调用静态方法

  26. 26

    从静态块或方法初始化静态最终int并在批注中使用它

  27. 27

    为什么静态最终变量使用静态方法初始化需要同步?

  28. 28

    委派任何更改的最佳方法是什么?

  29. 29

    更改类中任何字段的方法

热门标签

归档