Kotlin 如何协调单例模式与接口回调?-科特林
以下是我的情况:Kotlin 如何协调单例模式与接口回调?-科特林,kotlin,interface,singleton,Kotlin,Interface,Singleton,以下是我的情况: 我有一台与扫描仪有蓝牙连接的打印机 扫描仪的UI必须根据打印机的操作进行更新 事实上,我有蓝牙连接,这让我想采用单例模式,但事实上,我需要回调视图,这让我想实现一个接口 但是,我不想在构造函数或getInstance()方法中添加任何参数,因为那样会破坏单例原则 我提出的(非常糟糕的)想法是在singleton类中创建一个setListener()函数,实现侦听器的视图在启动时配置为singleton。这感觉…糟透了。有谁知道一个更好的方法来沟通这两者吗 印刷经理 主要活动
- 我有一台与扫描仪有蓝牙连接的打印机
- 扫描仪的UI必须根据打印机的操作进行更新
class PrinterManager private constructor() {
private lateinit var mListener: PrinterListener
companion object {
fun getInstance() = // ...
}
interface PrinterListener {
fun showErrorDialog()
}
fun setListener(listener: PrinterListener) {
mListener = listener
}
fun foo() {
if (doSomething()) {
// ...
else {
mListener.showErrorDialog()
}
}
}
class MainActivity: AppCompatActivity(), PrinterManager.PrinterListener {
override onCreate(savedInstanceState: Bundle?) {
// ...
PrinterManager.getInstance().setListener(this)
}
override fun showErrorDialog() {
// ...
}
}