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。我会说它更好。
我正在为教师的时间表创建图书馆。
但我想知道我是否应该在@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。我会说它更好。