Javascript “访问的好方法”;“上层阶级”;嵌套类中的方法?
假设我有一个程序:Javascript “访问的好方法”;“上层阶级”;嵌套类中的方法?,javascript,Javascript,假设我有一个程序: 类程序{ 构造函数(){ this.profileManager=新的profileManager(); } saveProgramConfig(){ // ... } } 如果在ProfileManager中发生了某些事情,并且需要保存程序配置,从ProfileManager类内部访问此特定实例的saveProgramConfig方法的最佳方式是什么?您可以将实例作为参数传递,以便两个实例都有彼此的链接: this.profileManager = new Profile
类程序{
构造函数(){
this.profileManager=新的profileManager();
}
saveProgramConfig(){
// ...
}
}
如果在ProfileManager中发生了某些事情,并且需要保存程序配置,从
ProfileManager
类内部访问此特定实例的saveProgramConfig
方法的最佳方式是什么?您可以将实例作为参数传递,以便两个实例都有彼此的链接:
this.profileManager = new ProfileManager(this);
并让ProfileManager将实例保存到它自己的一个属性中,并在需要时对其调用
saveProgramConfig
。以下方法有什么问题?您可以在ProfileManager类中访问程序的测试方法
class Program {
test() {
return "Hello World";
}
}
class ProfileManager extends Program {
constructor() {
super();
}
main() {
return this.test();
}
}
const tp = new B;
console.log(tp.main());
为什么不使用继承?我认为通过执行
ProfileManager扩展程序
,通过创建一个新的ProfileManager
实例,它还将创建一个新的程序
实例(ProfileManager的父类),但是我需要ProfileManager来访问这个特定程序
实例的方法。所以我只需要在程序构造函数中执行this.ProfileManager=new ProfileManager(this)
?这就是我一直在做的事情,我只是认为有更好的方法(或者我做错了)它可以工作-有时这是一个好的解决方案,但根据我的经验,在第一时间拥有这类类类类通常是一个迹象,在结构上不太正确(IMO)。我明白,你对如何构建这样的东西有什么建议吗?我不会陷入任何糟糕的软件设计陷阱?这取决于你试图完成什么,每种情况都是不同的。至少在我的经验中,我总是发现普通函数和普通对象在编写代码时更有意义,但其他人可能会有不同的偏好。如果你想避开它(这很好,我也是这么做的),避免上课。如果您想要OOP,请使用类。如果我不仅有管理程序配置文件的ProfileManager
,而且还有管理当前下载的DownloadManager
,该怎么办?如果两者都扩展了Program类,那么说newprofilemanager
和newdownloadmanager
是否意味着我也会创建两个Program
类(由这两个类继承)?我只需要运行一个程序
实例。不明白。。?为什么必须创建两个程序类。如果是这样,您可以在ProfileManager类中扩展DownloadManager,然后在程序中扩展ProfileManager,这样您就可以访问programManager和DownloadManager。为什么要编写两个类?DownloadManager
和ProfileManager
是这个理论程序中两个独立的“特性”。它们之间没有真正的联系,每个程序
实例只有一个连接。所以我认为继承不起作用,因为创建DownloadManager&ProfileManager意味着我将创建两个程序类(因为两个管理器都扩展了程序类),我只需要它们位于这个特定的程序
实例下。