我有一个Android应用程序,可以加密并上传各种文件到AWS。 AWS的锅炉板代码是单例,我在整个应用程序中使用它。我也有一个加密类,我目前在各个地方实例化加密对象,加密文件,并将其传递给AWS上传类的单例实例。
我想知道这是否是最佳方法?我应该使加密对象的实例静态吗?并且只有一个实例化,然后从不同的类调用encrypt方法?在某些地方建议,在其他人说使用静电可能是危险的?或者有比这两种选择更好的方法吗?
应该注意应用程序的工作正常,但我是一个自学成才的Android开发人员,我正在努力变得更好,但没有一个教程进入这样的事情的大量细节。
答案 0 :(得分:2)
静态并不危险,它可以共享不依赖于对象实例的操作。就像数学课一样。
Singleton模式用于控制某些类的objetcs实例。如果您想要一个实例,并且只需要一个实例,则使用单例。通常,人们使用它来在全球范围内获取该实例。我认为Application类适合这个。
如果我正在使用很多服务类,我更喜欢使用依赖注入。加密对我来说是一项服务,但是您必须使用依赖注入机制或使用框架,但这对您的问题来说太过分了。
这次我会选择静态方法。
答案 1 :(得分:1)
如果必须在不同的地方使用类的方法,那么创建Singleton类或使对象保持静态都是很好的选择。最好有一个静态对象,然后一次又一次地创建同一个对象。
所以根据我的说法,“Singleton”类是使代码高效的最佳选择,但是如果你想使用静态方法/类,那么它就没有任何害处。静态在某些情况下可能很危险,例如在必须分配不同的值并在不同情况下获取不同的值时。那么你有可能在错误的情况下得到错误的价值。但在你的情况下,没关系。