Java : 使用@Deprecated 和缓存代理模式

Java : utilization of @Deprecated with Cache Proxy Pattern

我正在为教师的时间表创建图书馆。

但我想知道我是否应该在@Deprecated 中添加一个class。

这是我的情况:

在图书馆,我有一个 Schedule class 从学校网站上收集时间表。

另一个 ScheduleProxy class 将已经发出的请求保存在缓存中,从而避免第二次相同的请求。

使用@Deprecated 的第一个解决方案:

日程安排

/**
 * 
 * @deprecated For the use of the Schedule class, it is preferable
 * to use its proxy: {@link ScheduleProxy} in order to have better response times.
 * 
 * @see InterfaceSchedule
 * @see ScheduleProxy
 */
@Deprecated(forRemoval = false)
public final class Schedule implements InterfaceSchedule {
/*
 * Code
 * 
 */
}

ScheduleProxy

public final class ScheduleProxy implements InterfaceSchedule{
/*
 * Code
 * 
 */
}

没有@Deprecated 的第二种解决方案:

日程安排

我将 public 更改为私有包 Schedule class 这样用户就不会使用这个 class.

/**
 * 
 * @see InterfaceSchedule
 * @see Schedule
 */
final class ConcreteSchedule implements InterfaceSchedule {
/*
 * Code
 * 
 */
}

ScheduleProxy

我将 class 名称从“ScheduleProxy”更改为“Schedule”,这样图书馆用户就更清楚了。

public final class Schedule implements InterfaceSchedule{
/*
 * Code
 * 
 */
}

问题

所以我想问你这两种方案哪个更好用?

第二种解决方案对用户来说更直观,并且无法使用您实际上不想使用的 API。我会说它更好。