gpt4 book ai didi

java - 这个 PowerBuilder 统计生成代码是否适本地面向对象?

转载 作者:行者123 更新时间:2023-12-01 17:26:52 25 4
gpt4 key购买 nike

我正在重构一个用 PowerBuilder 和 Java 编写并在 Sybase EA Server (Jaguar) 上运行的现有应用程序。我正在构建一个小型框架来封装 EA Server 中可用的 Jaguar API 函数。其中一个类是使用 Monitoring 类从 EA Server 获取运行时统计信息。

无需赘述,Monitoring 是 EA Server API 中的一个类,它提供 Jaguar 运行时监控统计信息(实际类采用 C++ 编写;EA Server 在 Java 中为这些提供了包装器,因此它们可以通过 CORBA 访问)。

下面是我的类(class)的简化版本。 (我创建了一个父类(super class),我继承它来获取组件、连接缓存、HTTP 等的统计信息)。

public class JagMonCompStats {
...
public void dumpStats(String type, String entity) {

private String type = "Component";
private String entity = "web_business_rules";
private String[] header = {"Active", "Pooled", "invoke"};
// This has a lot more keys, simplified for this discussion
private static short[] compKeys = {
(short) (MONITOR_COMPONENT_ACTIVE.value),
(short) (MONITOR_COMPONENT_POOLED.value),
(short) (MONITOR_COMPONENT_INVOKE.value)
};
private double[] data = null;

...
/* Call to Jaguar API */
Monitoring jm = MonitoringHelper.narrow(session.create("Jaguar/Monitoring"));
data = jm.monitor(type, entity, keys);

...

printStats(entity, header, data);
...
}

protected void printStats(String entityName, String[] header, double[] data) {

/* print the header and print data in a formatted way */

}
}

data = jm.monitor 行是对 Jaguar API 的调用。它采用实体的类型、实体的名称以及我们想要的统计信息的键。该方法返回一个 double 组。我继续以格式化输出打印标题和数据。

该程序可以运行,但我想获得专家对 OO 设计方面的意见。其一,我希望能够自定义 printStats 以便能够以不同的格式进行打印(例如,完整的报告或单行报告)。除此之外,我还考虑在网页或 PowerBuilder 屏幕上显示统计信息,在这种情况下 printStats 甚至可能不相关。您将如何以真正的面向对象方式做到这一点?

最佳答案

嗯,这很简单。不要打印此类的统计信息。 归还它们。并让调用者决定如何显示返回的统计信息。

现在您可以获得统计信息,您可以创建 OneLinerStatsPrinter ,一个DetailedStatsPrinter ,一个HtmlStatsFormatter ,或者任何你想要的。

关于java - 这个 PowerBuilder 统计生成代码是否适本地面向对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14177036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com