Tag: 重构

Eclipse JDT:是否有重构用setter / getter方法替换直接字段访问?

我知道我可以在Eclipse源代码菜单中为字段生成setter和getter,但我很惊讶它没有提供用新调用方法调用来替换直接字段访问器。 有谁知道如何做这个缺乏手动搜索和替换? 谢谢!

如何在运行时实例化Spring托管bean?

我坚持从简单的java到spring的简单重构。 Application有一个“Container”对象,它在运行时实例化它的部分。 让我解释一下代码: public class Container { private List runtimeBeans = new ArrayList(); public void load() { // repeated several times depending on external data/environment RuntimeBean beanRuntime = createRuntimeBean(); runtimeBeans.add(beanRuntime); } public RuntimeBean createRuntimeBean() { // should create bean which internally can have some // spring annotations or in other words // should be managed […]

重构访问遗留系统中存储库的域逻辑

我正在使用具有贫血域模型的遗留系统。 域具有以下实体类: Car , CarType , CarComponent , CarComponentType 。 对于其中的每一个,都有一个单独的存储库。 还有许多服务可以访问这些存储库,并且基本上包含所有逻辑。 我需要实现一个方法来确定供应商CarComponentType可以停止CarComponentType 。 逻辑如下:只有当前没有现有汽车的组件才能停止组件。 最初,我在服务类中实现了它。 public boolean canBeDiscontinued(CarComponentType carComponentType) { List cars = carRepository.getCarsWithComponent(carComponentType); return cars.isEmpty(); } 这有效 – 但是这个逻辑在代码中的其他几个地方使用。 它可能会增长,它看起来像是可以放在 CarComponentType类中的东西: public boolean canBeDiscontinued() { List cars = carRepository.getCarsWithComponent(this); return cars.isEmpty(); } 但是,我不能把它放在那里,因为它需要访问存储库(据我所知,它是一个非常严重的反模式,实体要知道数据访问层)。 加载组件类型时,我无法加载该类型的所有汽车,因为这可能是数千个对象。 我们没有使用任何ORM,因此制作延迟加载的集合不仅体积大,而且非常容易出错。 像我第一次在服务类中实际使用此方法更合适吗? 这不重要吗? 还有另一种选择吗? 我应该从另一个起点开始重构吗? 这里有一个类似的问题。 但是我的问题与Java有关,所以我不认为这个解决方案适用于我的情况。 此外,抱歉使用汽车和组件作为我的域模型。 🙂

为Eclipse编写一个新的重构插件?

有没有关于在Eclipse中实现新重构的好文档? 具体来说,我想访问Java类的Java,进行一些非平凡的更改,并将结果保存回源文件。 到目前为止,我发现的唯一文档是(1)现有重构的源代码和(2)关于LTK和Java AST的一些文章: Eclipse LKT Eclipse Java AST 我应该阅读其他任何文章或教程吗?