如何在OOP中避免没有静态属性继承?

用户名

因此,我有一堆继承基类的类。每个类都需要有自己的一些值数组,基本上是一个静态数组,因为我不需要为每个实例设置一个。但是由于不能继承静态变量,因此我必须为每个单个类声明此静态数组,并重写对数组进行操作的方法(即使方法始终相同)。我能想到的唯一解决方案是使用非静态数组,但是每个实例都会有一个额外的数组。有什么办法可以解决吗?每个类仅具有1个数组,而不声明同一方法的多个?

大卫

我将必须为每个类声明此静态数组

好吧,无论如何,您都必须这样做。由于每个人都需要自己的阵列版本。

由于明显的性能原因,您不需要实例数组,这很有意义。但是如何使用实例方法访问数组呢?像这样:

abstract class Widget
    static array MyValues = [1,2,3]

    abstract array GetValues
        return MyValues

    void DoSomething
        // reference GetValues instead of MyValues

然后在覆盖类中:

class SpecificWidget inherits Widget
    static array MySpecificValues = [2,3,4]

    override array GetValues
        return MySpecificValues

机制可能会略有不同,具体取决于所使用的语言,但总体思路应该可行。每种类型都定义了一个可以重写的实例方法,其唯一目的是充当一种访问值的工厂。

像这样抽象后,这些值基本上可以存在于任何地方。在静态数组中,在某个地方的外部缓存中,在数据库中等等。其余的代码将耦合到抽象上,而不耦合到值的存储上。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

如何避免没有继承的DTO重复?

来自分类Dev

为什么我继承的静态属性没有值?

来自分类Dev

如何在我的自定义用户模块中避免此“元组对象没有属性'照片'”错误?

来自分类Dev

如何在Swift中获取所有静态属性?

来自分类Dev

如何在Swift中获取所有静态属性?

来自分类Dev

如何避免OOP中的“耦合”

来自分类Dev

如何在JetBrains Webstorm / PHPStorm中编写oop javascript(带有继承)以获取自动补全/智能提示

来自分类Dev

如何在Python中声明静态属性?

来自分类Dev

如何在静态类中绑定属性?

来自分类Dev

如何在PHP中定义静态属性?

来自分类Dev

继承没有属性吗?

来自分类Dev

如何在orientdb中查询没有特定属性的文档

来自分类Dev

如何在没有继承的情况下使用Mixins?

来自分类Dev

如何在 PHP/HTML 属性中呼出 OOP 方法?

来自分类Dev

TypeScript:如何在没有构造函数的类中内部调用静态函数?

来自分类Dev

如何在C中没有指针的情况下检索超出范围的静态值?

来自分类Dev

如何在没有 JS 或 Ajax 或 JSQ 的情况下在静态 html <iframe> 中嵌入 WP?

来自分类Dev

在另一个类(OOP)中访问没有静态引用的数组

来自分类Dev

如何在PROLOG的继承关系中覆盖属性?

来自分类Dev

如何在Hibernate JPA @NamedEntityGraph中引用继承的属性?

来自分类Dev

如何在Hibernate JPA @NamedEntityGraph中引用继承的属性?

来自分类Dev

如何在类中隐藏属性继承的接口

来自分类Dev

如何在类中设置没有设置的属性(只读属性)?什么机制?

来自分类Dev

如何在没有继承的情况下在中继器中调用类文件中的函数

来自分类Dev

C#中具有静态属性的抽象类的继承

来自分类Dev

OOP-Python-如何在类中调用函数并避免由于self引起的参数丢失错误?

来自分类Dev

静态类属性的继承

来自分类Dev

继承AttributeError:“模块”对象没有属性

来自分类Dev

没有继承属性的接口代理

Related 相关文章

  1. 1

    如何避免没有继承的DTO重复?

  2. 2

    为什么我继承的静态属性没有值?

  3. 3

    如何在我的自定义用户模块中避免此“元组对象没有属性'照片'”错误?

  4. 4

    如何在Swift中获取所有静态属性?

  5. 5

    如何在Swift中获取所有静态属性?

  6. 6

    如何避免OOP中的“耦合”

  7. 7

    如何在JetBrains Webstorm / PHPStorm中编写oop javascript(带有继承)以获取自动补全/智能提示

  8. 8

    如何在Python中声明静态属性?

  9. 9

    如何在静态类中绑定属性?

  10. 10

    如何在PHP中定义静态属性?

  11. 11

    继承没有属性吗?

  12. 12

    如何在orientdb中查询没有特定属性的文档

  13. 13

    如何在没有继承的情况下使用Mixins?

  14. 14

    如何在 PHP/HTML 属性中呼出 OOP 方法?

  15. 15

    TypeScript:如何在没有构造函数的类中内部调用静态函数?

  16. 16

    如何在C中没有指针的情况下检索超出范围的静态值?

  17. 17

    如何在没有 JS 或 Ajax 或 JSQ 的情况下在静态 html <iframe> 中嵌入 WP?

  18. 18

    在另一个类(OOP)中访问没有静态引用的数组

  19. 19

    如何在PROLOG的继承关系中覆盖属性?

  20. 20

    如何在Hibernate JPA @NamedEntityGraph中引用继承的属性?

  21. 21

    如何在Hibernate JPA @NamedEntityGraph中引用继承的属性?

  22. 22

    如何在类中隐藏属性继承的接口

  23. 23

    如何在类中设置没有设置的属性(只读属性)?什么机制?

  24. 24

    如何在没有继承的情况下在中继器中调用类文件中的函数

  25. 25

    C#中具有静态属性的抽象类的继承

  26. 26

    OOP-Python-如何在类中调用函数并避免由于self引起的参数丢失错误?

  27. 27

    静态类属性的继承

  28. 28

    继承AttributeError:“模块”对象没有属性

  29. 29

    没有继承属性的接口代理

热门标签

归档