各位大佬晚上好,我想请教一下,下面这种设计模式是否被允许?会不会存在循环引用的问题?
是这样的,一个 app: App ,持有 config: Config ,config: Config 又持有一个私有变量 prop: boolean,我想在 Config 类的外部能够直接访问并修改这个私有变量 prop ,并且修改之后可以直接调用 app: App 里的方法作出响应。
具体情境:一个应用,带有一些配置信息,当我不通过调用方法的方式而是直接修改配置信息的时候,应用也同样能够作出响应。
class Config {
private _app: App
private _prop: boolean = true
get prop() {
return this._prop
}
set prop(state: boolean) {
this._prop = state
this._app.respond()
}
constructor(app: App) {
this._app = app
}
}
class App {
config: Config = new Config(this)
respond() {
console.log(`the config "prop" has changed to ${this.config.prop}`)
// ... do something
}
}
const app = new App()
app.config.prop = false
谢谢各位大佬!