继承main方法

2024-02-18

我想定义一个基类,它定义一个实例化该类的主方法,并运行一个方法。但也存在一些问题。这是基类:

public abstract class Strategy
{
    abstract void execute(SoccerRobot robot);

    public static void main(String args)
    {
        Strategy s = new /*Not sure what to put here*/();
        s.execute(new SoccerRobot())
    }
}

这是一个派生类的示例:

public class UselessStrategy
{
    void execute(SoccerRobot robot)
    {
        System.out.println("I'm useless")
    }
}

它定义了一个简单的执行方法,在用作主应用程序时应在主方法中调用该方法。但是,为了做到这一点,我需要从基类的 main 方法中实例化派生类。这似乎不可能。

我不想为每个派生类重复 main 方法,因为这感觉有些不必要。

有正确的方法吗?


将 main 方法移出到一个单独的类中。单独关注
策略(名字说明了一切)
启动器(将组件组装在一起并触发执行)

public class Launcher
{
    public static void main(String args)
    {
       Strategy s = new UselessStrategy();
          //OR Strategy s = CreateInstance(args[0]) ;
          //OR equiv mechanism for Dependency Injection if you don't want to hardcode the derived strategy to use.
        s.execute(new SoccerRobot())
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

继承main方法 的相关文章

随机推荐

  • 如何使用 EF 在 MVC Code-first 中更新/创建多对多关系数据?

    我仔细研究了 StackOverflow Google 和 asp net 试图找到一个清晰 基本的示例来说明如何做到这一点 所有的例子都是抽象的或涉及不适用的复杂情况 我没能从他们身上获得太多有用的东西 到目前为止 他们都没有完全回答我的
  • Spring RestTemplate 将响应流式传输到另一个请求中

    我正在尝试使用 spring 将文件下载的结果直接流式传输到另一篇文章中RestTemplate 我目前的方法如下 ResponseEntity
  • 为express.js更新Cookie会话

    我正在使用cookie会话 https github com expressjs cookie sessionExpress js 处理会话的模块 我希望在每次页面加载 或ajax调用 时更新会话 这就是他们通常在任何地方工作的方式 文档对
  • Python + Selenium:从“ng-bind”获取跨度值

    所以我有 Selenium 代码可以使用 chrome 访问页面 现在在该页面上有这样的 HTML span Heloooo span 如何使用 python 和 Selenium 获取值 所以只有Heloooo 谢谢 您可以使用以下 CS
  • $.proxy() 和 bind() 有什么区别?

    2009 年 ECMAScript 5 添加了一个内置的bind 函数接受一个对象作为参数并返回一个相同的函数 其中this将始终引用您传递给它的对象 我找不到任何看起来像规范文档链接的内容 这与jQuery 的 proxy 功能 http
  • 处理 Yesod 表单中的数据集合

    是否有可能在Yesod https en wikipedia org wiki Yesod web framework 处理包含数据集合的表单 我有一个用户可以添加多个人的表单 在前端它目前看起来像这样 people map person
  • 使用 AFNetworking 下载大文件

    我正在尝试实现大文件的下载并向用户显示当前进度 但阻止 AFURLConnectionOperation setDownloadProgressBlock 返回不正确bytesRead and totalBytesRead值 它们小于应有的
  • Hyperledger Fabric 的性能测试

    在尝试使用 Hyperledger Fabric 实现 IBM 团队在其文章中报告的性能期间Hyperledger Fabric 用于许可区块链的分布式操作系统 https arxiv org abs 1801 10228 我遇到了一些问题
  • 寻找跨平台开发的最佳 PCL 配置文件

    我正在努力扩展我的应用程序支持的平台数量 它曾经支持 NET4 Windows Store Windows Phone 但我希望也涵盖适用于 Android 和 iOS 的 Mono 我已将所有业务逻辑 模型和视图模型放入可移植类库 PCL
  • Blazor GetAsync 请求返回 401 状态代码

    我是 blazor 新手 尝试使用 NET Core EF Core 3 和 Visual studio 2019 创建一个应用程序 我已经设置了一个数据库模型和一个 API 用于获取所有地址 api Address 并在浏览器中浏览到此地
  • C# WinForm BackgroundWorker 不更新进度栏

    我在让后台工作人员更新进度条时遇到了一些麻烦 我使用在线教程作为示例 但我的代码无法正常工作 我在这个网站上进行了一些挖掘 但找不到任何解决方案 我对后台工作者 进度的事情很陌生 所以我不完全理解它 只是为了设置 我有一个主窗体 窗体 1
  • 传递到字典中的模型项的类型为“MyType”,但该字典需要类型为“MyType”的模型项

    是的 我浏览了类似标题的问题 它们似乎都不符合我所处的情况 这只是程序员向视图发送了错误的对象类型 这是我收到的确切错误消息 传递到字典中的模型项的类型为 IS Extensions Models ContactSelectList 但此字
  • Haskell 中的并发数据库连接池

    我是一名学习 Haskell 的 Java 程序员 我正在开发一个小型 Web 应用程序 该应用程序使用 Happstack 并通过 HDBC 与数据库进行通信 我写过select and exec函数 我这样使用它们 module Mai
  • 使用 onOptionsItemSelected 从 PreferenceActivity 和 PreferenceFragments 向上移动

    我使用时遇到问题onOptionsItemSelected使用 Android Studio 的默认 设置活动 extends AppCompatPreferenceActivity 活动的重要部分是 public class Settin
  • 正则表达式提取嵌套模式[重复]

    这个问题在这里已经有答案了 可能的重复 在 Python 中将嵌套结构与正则表达式匹配 https stackoverflow com questions 1099178 matching nested structures with re
  • Firebase 中单个主题订阅的用户最大限制是多少? [复制]

    这个问题在这里已经有答案了 我正在使用 Firebase 主题发送通知 在这样做时 我遇到了 Firebase 通知控制台 其中显示 topic name lt 1000 estimated user关于选择通过主题发送通知 我读过这个PO
  • 在 ScrollViewer 滚动条可见性 (WPF) 上触发

    是否可以创建一个基于触发器触发的触发器ScrollViewer滚动条的可见性 我有一个ScrollViewer以其VerticalScrollBarVisibility set to Auto我想改变一些ScrollViewer仅当滚动条实
  • ansible 循环 include_tasks 直到成功

    我想知道如何循环多个任务直到满足条件 main yml set fact num 1 req num 10 name Start to unregister entities include tasks output yml loop ra
  • 检测 BLE 设备是否可在 Android 上连接

    我正在开发一个配置信标的项目 通电一段时间后 信标将变得不可配置 直到重新通电为止 为了显示可配置信标的列表 我正在查看某些特征 蓝牙设备名称 广告数据包中的某些制造商数据 我还需要知道它是否 可连接 即 e 如果设备的 BLE 广告数据包
  • 继承main方法

    我想定义一个基类 它定义一个实例化该类的主方法 并运行一个方法 但也存在一些问题 这是基类 public abstract class Strategy abstract void execute SoccerRobot robot pub