Java - Class 链接
Java - Class Chaining
假设您有以下 Class 静态定义方法。
kubeUtils
- KubeUtils
controllers
- ConfigMapUtils
- DeploymentUtils
- ...
objects
- PodUtils
- NamespaceUtils
- .....
每个 class 都有一些方法,例如
public static void waitUntilServiceIsPresent(String serviceName){
// implementation...
}
public static void waitUntilServiceDeletion(String serviceName){
// implementation...
}
public static void waitUntilServiceIsUpdated(String serviceName){
// implementation...
}
and so on...
所以在用户视图中我们需要像这样调用它:ServiceUtils.waitUntilServiceIsPresent(serviceName);
我需要的语法糖将使用 Class 链接,但我不知道我该怎么做。示例:
KubeUtils.ServiceUtils.waitUntilServiceIsPresent(serviceName)
or
KubeUtils.getServiceUtils.waitUntilServicePresent(serviceName)
请记住,我在这些 classes 中只有静态方法,我不想使用组合。我的目标是在不创建对象的情况下使用此方法。希望,我的解释很清楚。
我会继续说我认为这不是一个好的做法,但作为一个练习:你可以通过内部 类:
public class KubeUtils {
public static class ServiceUtils {
public static void waitUntilServiceIsPresent(String serviceName){
...
}
}
}
通话中:
KubeUtils.ServiceUtils.waitUtilServiceIsPresent(...);
为了更好地练习,我可能会使用包结构来构建您的实用程序 类,如下所示:
com.domain.project
├── kube
│ ├── ServiceUtil
│ └── FooUtil
└── bar
└── BazUtil
假设您有以下 Class 静态定义方法。
kubeUtils
- KubeUtils
controllers
- ConfigMapUtils
- DeploymentUtils
- ...
objects
- PodUtils
- NamespaceUtils
- .....
每个 class 都有一些方法,例如
public static void waitUntilServiceIsPresent(String serviceName){
// implementation...
}
public static void waitUntilServiceDeletion(String serviceName){
// implementation...
}
public static void waitUntilServiceIsUpdated(String serviceName){
// implementation...
}
and so on...
所以在用户视图中我们需要像这样调用它:ServiceUtils.waitUntilServiceIsPresent(serviceName);
我需要的语法糖将使用 Class 链接,但我不知道我该怎么做。示例:
KubeUtils.ServiceUtils.waitUntilServiceIsPresent(serviceName)
or
KubeUtils.getServiceUtils.waitUntilServicePresent(serviceName)
请记住,我在这些 classes 中只有静态方法,我不想使用组合。我的目标是在不创建对象的情况下使用此方法。希望,我的解释很清楚。
我会继续说我认为这不是一个好的做法,但作为一个练习:你可以通过内部 类:
public class KubeUtils {
public static class ServiceUtils {
public static void waitUntilServiceIsPresent(String serviceName){
...
}
}
}
通话中:
KubeUtils.ServiceUtils.waitUtilServiceIsPresent(...);
为了更好地练习,我可能会使用包结构来构建您的实用程序 类,如下所示:
com.domain.project
├── kube
│ ├── ServiceUtil
│ └── FooUtil
└── bar
└── BazUtil