我有一个关于Android Dagger 2以及使用@Inject和@Provide注释的问题.给出以下两个简化示例:
public class A {
String msg;
public A(String msg){
this.msg = msg;
}
}
public class B {
public A a;
public B(A a){
this.a = a;
}
}
@Module
public class AModule {
@Provides
A providesA(){
return new A("blah");
}
@Provides
B ProvidesB(A a)
{
return new B(a);
}
}
Run Code Online (Sandbox Code Playgroud)
这个例子是非常简单的,我在我的两个方法AModule与@Provides注解.因此,Dagger可以创建一个B使用A字符串实例的对象blah.
我的第二个例子如下:
public class A {
String msg;
public A(String msg){
this.msg …Run Code Online (Sandbox Code Playgroud) 最近,我偶然发现了以下问题:给出了一个简单的数据模型,其中包含“ Books”和“ Authors”。每个“书”都有对“作者”的引用。持久性是通过关系数据库实现的。除了添加书籍和作者,还可以删除它们。通常,如果要删除作者,我将执行SQL DELETE操作并删除相应的行。但是,在其他项目中,我没有看到有人打电话DELETE。相反,它们添加某种活动/已删除标志并将相应的行标记为“已删除”。
我的问题是:这是一般的最佳做法吗?有什么优势?我最好的猜测是:
DELETE操作具有更好的性能无论如何,这些只是猜测。有人知道答案吗?