javascript - 如何处理兄弟继承问题?
问题描述
我有一个处理查找/保存项目的基类。为了降低save
函数复杂度(因为它使用insert
或update
取决于它是否被保存),我认为最好将它分成两个类,因为我的许多其他方法(这里没有写)取决于它是否被保存。这是一个简单的例子:
class ItemBase {
constructor (initData) {
this.data = initData
}
find (id) {
const found = Model.find(this.data)
return new SavedItemBase(found)
}
save () {
const saved = this.insert(this.data)
return new SavedItemBase(saved)
}
insert () {}
update () {}
}
class SavedItemBase extends ItemBase {
save () {
this.update()
return this
}
}
玩具:
class Toy extends ItemBase {
constructor () {
this.name = 123
this.id = 456
}
someMethod () {} // This is lost if I return a new SavedItemBase
}
Toy 的问题在于它只扩展了Item
. 如果我new SavedItem
在父类中返回 a Item
,则原始Toy
类将丢失。这是我的问题的图片:
我如何让玩具在SavedItemBase
从Base
. 还是有更好的方法来实现这一点?Toy
SavedToyBase
解决方案
推荐阅读
- kubernetes - istio 是响应式应用程序的瓶颈吗?
- c# - WPF C#中自定义用户控件的绑定
- html - HTML:防止出现文本输入中的历史记录
- fortify - Fortify:如何使用 fortify rest api 获取项目下的问题(漏洞)列表
- azure-active-directory - 使用 redirect_uri 传递自定义参数
- django - 无法使用 Apache2.4 在 django 中的同一域上托管多个站点
- sql-server - 在 SQL Server 中左连接 2 个表
- powershell - 将参数传递给 PowerShell 函数时的不同行为
- php - 如何在 Codeigniter 中从服务器端获取 id 或将 id 传递给数据表?
- django - Psycopg2:升级还是不升级