当前位置:  开发笔记 > 编程语言 > 正文

如何处理因实现类而异的静态字段

如何解决《如何处理因实现类而异的静态字段》经验,为你挑选了0个好方法。

我一直都遇到这个问题。假设我正在创建命令行界面(Java或C#,问题与我想的相同,我将在此处显示C#)。

    我定义一个接口ICommand

    我创建了一个抽象基类CommandBase,它实现了ICommand,以包含通用代码。

    我创建了几个实现类,每个实现类都扩展了基类(并通过扩展了接口)。

现在-假设接口指定所有命令都实现Name属性和Execute方法...

对于Name,我的每个实例类都必须返回一个字符串,该字符串是该命令的名称。该字符串(“ HELP”,“ PRINT”等)对于相关类是静态的。我希望能够做的是定义:

公共抽象静态常量字符串名称;

但是(很遗憾)您不能在接口中定义静态成员。

我多年来一直在为这个问题而苦苦挣扎(几乎在我拥有类似课程的家庭中任何地方),因此下面将发表我自己的3种可能的解决方案,供您投票。但是,由于它们都不是理想的,我希望有人能发布一个更优雅的解决方案。


更新:

    我无法使代码格式正常工作(Safari / Mac?)。道歉。

    我使用的示例很简单。在现实生活中,有时会有数十个实现类和这种半静态类型的多个字段(即实现类为静态)。

    我忘了提-理想情况下,我希望能够静态查询此信息:

    字符串名称= CommandHelp.Name;

在我提出的3个解决方案中,有2个要求实例化该类,然后才能发现此静态信息,这很丑陋。

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有