在我的日常编程中,我尽量遵循solid原则和其他设计模式,但在某些情况下会变得很困难,特别是使用依赖反转原则,对于层次类,创建工厂类并在那里存储对象可能很容易,对于singleton或builder也是一样,但当您在方法中使用单个类对象时,问题就出现了,该方法是不断变化的,并且同样没有层次关系
//在newtaskfor()方法中,dip原则被违反了,因此如何在日常程序或其上处理此类问题,在容器类中使用new关键字是可以的
protected <T> RunnableFuture<T> newTaskFor(Callable<T> callable) {
return new FutureTask<T>(callable); //violating Dip principle
}
/**
* @throws RejectedExecutionException {@inheritDoc}
* @throws NullPointerException {@inheritDoc}
*/
public Future<?> submit(Runnable task) {
if (task == null) throw new NullPointerException();
RunnableFuture<Void> ftask = newTaskFor(task, null);
execute(ftask);
return ftask;
}
暂无答案!
目前还没有任何答案,快来回答吧!