一种在java中实现部分类的方法

时间:2012-03-26 16:53:33

标签: java partial-classes

我有一个界面,我想在快速谷歌搜索后在不同的类中实现,显然, Java没有部分类。有没有办法可以做到这一点,还是我把所有代码都扔进了一个类?

基本上,我正在尝试编写服务。 一些服务方法确实属于他们自己的类,并且在同一个类中看起来有点不合逻辑。这是我想要做的一个例子。

package com.upmc.esdm.messaging.epcd.service;
import java.util.List;

import javax.ejb.Remote;

import com.upmc.esdm.messaging.epcd13jpa.entities.EmailDomainTrust;


@Remote
public interface MessagingInterfaceRemote {
public List<EmailDomainTrust> getEmailDomains();

    public int upDateQualityTable();

    public string isLogial();

    public byte[] ToWritePartialClassesInJava();
}

我通常会在C#中使用部分类,并且我会将类似的值返回到一个部分类(或者更新一个类中的记录的类)。我该如何实现?或者我应该将所有方法实现放在一个类中?

感谢。

5 个答案:

答案 0 :(得分:36)

Java中没有类似于部分类的东西。您可以使用聚合,委派和抽象基类来实现许多相同的好处。

(我已经屈服于同伴的压力,消除了在评论中引起如此多热情的“谢天谢地”的评论。显然,尽管与答案无关,但小小的旁边似乎已经为我赢了四次。)

答案 1 :(得分:3)

Aspectj可以是C#/ .net部分类功能的答案! Spring Roo是使用aspectj将类功能划分为几个不同文件的典型开发框架之一。

答案 2 :(得分:2)

在走这条路线之前,您可能需要考虑Builder design pattern。这允许您的服务聚合在单独的类中实现的实现。从OO的角度来看,不需要预编译器,而且非常干净。

每个组件类都有一个特定的,狭隘的职责,服务类使用它的组件类的服务来实现服务的责任。

如果您真的想(不推荐),您可以在编译之前使用预处理器来组合类的一部分。

预处理器可能有意义的唯一情况是,您的某些实现是代码生成的,而其他部分是手工编码的。一个简单的方法可能是#include主.java文件中的外部定义的类片段,并在编译之前在文件上运行C预处理器。

答案 3 :(得分:1)

您可以通过多个接口声明方法,然后让您的具体类实现多个接口。

此外,使用java.lang.Proxy,您可以从多个接口组装服务,并将实际方法调用委托给单独的实现。

答案 4 :(得分:0)

我讨厌提出一个旧的话题,但我想我会针对给定的答案带来一个新的观点。 面向方面编程可以更好地实现您要实现的跨领域关注点。

您正在寻找一种强大的关联解决方案,可以在其中将实现细节解析为不同的控制方法。 Spring framework在这个领域非常重要,并且如今经常与微服务相关。