小编Chr*_*ann的帖子

Android Dagger 2:Inject vs. Provide

我有一个关于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)

android dependency-injection dagger

14
推荐指数
1
解决办法
2953
查看次数

关系数据库:DELETE与“标记为删除”

最近,我偶然发现了以下问题:给出了一个简单的数据模型,其中包含“ Books”和“ Authors”。每个“书”都有对“作者”的引用。持久性是通过关系数据库实现的。除了添加书籍和作者,还可以删除它们。通常,如果要删除作者,我将执行SQL DELETE操作并删除相应的行。但是,在其他项目中,我没有看到有人打电话DELETE。相反,它们添加某种活动/已删除标志并将相应的行标记为“已删除”。

我的问题是:这是一般的最佳做法吗?有什么优势?我最好的猜测是:

  • 设置标志比DELETE操作具有更好的性能
  • 如果空间不足,仍然可以运行清理服务,以查找已删除的对象并删除相应的行
  • 设置删除标记对于数据库一致性更好,因为在上面的示例中删除“ Author”可能会破坏相应的“ Book条目”中的外键。

无论如何,这些只是猜测。有人知道答案吗?

mysql sql database relational-database

2
推荐指数
1
解决办法
723
查看次数