我尽可能地保持我的服务接口,通常它们是@functionalinterface。我试图遵循界面分离原则。
如果我的服务实现实现多个接口,如果它们共享其中的大部分依赖关系,这是一个好的实践吗?或者我应该为每个接口创建一个单独的实现?
interface TaskScheduler<T> {
void scheduleOn(T task, Instant scheduledOn);
}
interface TaskExecutor<T> {
void execute(T task);
}
@Service
class TaskService implements TaskScheduler<String>, TaskExecutor<String> {
private final TaskFinder taskFinder;
private final TaskCreator taskCreator;
public void scheduleOn(String task, Instant scheduledOn) {
// TODO
}
public void execute(String task) {
// TODO
}
}
在我的例子中;TaskService实现这两个接口是一个好的做法吗?或者我应该为每个接口有一个单独的类?
似乎每个TaskScheduler
也可以被说成是TaskExecutor
,如果您要给它一个instant.now()
的时间。
因此,我不喜欢您的设计的一点是,如果我有TaskScheduler
的实例,我不能将它传递给需要TaskExecutor
的东西,尽管它确实应该能够实现该功能。
你可以这样修的。它甚至可以向后兼容你已经拥有的东西。任何现有的TaskScheduler
甚至不必知道或关心它们现在是TaskExecutor
,但它们确实是。
interface TaskExecutor<T> {
void execute(T task);
}
interface TaskScheduler<T> extends TaskExecutor<T> {
void scheduleOn(T task, Instant scheduledOn);
@Override
default void execute(T task) {
scheduleOn(task, Instant.now());
}
}
MSDN 描述其 OLEDB 提供程序的 JET 事务隔离,如下所示: Jet支持事务中的五级嵌套。事务唯一支持的模式是提交读取。设置较低级别的事务分离意味着提交读取。设置更高的级别将导致StartTransaction失败。 Jet仅支持单相提交。 MSDN对的描述如下: 指定读取数据时保持共享锁,以避免脏读,但可以在事务结束前更改数据,从而导致不可重复读取或幻像数据。此选项是SQL服务器默认值
本文向大家介绍说一下 spring 的事务隔离?相关面试题,主要包含被问及说一下 spring 的事务隔离?时的应答技巧和注意事项,需要的朋友参考一下 spring 有五大隔离级别,默认值为 ISOLATION_DEFAULT(使用数据库的设置),其他四个隔离级别和数据库的隔离级别一致: ISOLATION_DEFAULT:用底层数据库的设置隔离级别,数据库设置的是什么我就用什么; ISOLATI
简介 接口隔离原则(英语:interface-segregation principles, 缩写:ISP)指明没有客户(client)应该被迫依赖于它不使用方法。接口隔离原则(ISP)拆分非常庞大臃肿的接口成为更小的和更具体的接口,这样客户将会只需要知道他们感兴趣的方法。这种缩小的接口也被称为角色接口(role interfaces)。接口隔离原则(ISP)的目的是系统解开耦合,从而容易重构,更
本文向大家介绍MySQL事务及Spring隔离级别实现原理详解,包括了MySQL事务及Spring隔离级别实现原理详解的使用技巧和注意事项,需要的朋友参考一下 1、事务具有ACID特性 原子性(atomicity):一个事务被事务不可分割的最小工作单元,要么全部提交,要么全部失败回滚。 一致性(consistency):数据库总是从一致性状态到另一个一致性状态,它只包含成功事务提交的结果 隔离型(
问题内容: 也许有人可以帮助我解决Spring(3.1)/ Postgresql(8.4.11)中的事务性问题 我的交易服务如下: Spring配置Webapp包含: 让我们说一个请求“ x”和一个请求“ y”同时执行并到达注释“比较”(方法insertObject)。然后,允许他们两个都插入一个新对象,并提交他们的事务。 为什么我没有RollbackException?据我所知,这就是可序列化等
接口隔离原则定义如下: 接口隔离原则(Interface Segregation Principle, ISP):使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。 根据接口隔离原则,当一个接口太大时,我们需要将它分割成一些更细小的接口,使用该接口的客户端仅需知道与之相关的方法即可。每一个接口应该承担一种相对独立的角色,不干不该干的事,该干的事都要干。这里的“接口”