Javascript 如何决定是将其分为两类还是保留在同一类中?
我有一个页面,上面有一些项目的列表。每个项目都有一些属性:注释、图像、标题、注释表单和内容。创建一个名为Javascript 如何决定是将其分为两类还是保留在同一类中?,javascript,jquery,oop,design-patterns,class-design,Javascript,Jquery,Oop,Design Patterns,Class Design,我有一个页面,上面有一些项目的列表。每个项目都有一些属性:注释、图像、标题、注释表单和内容。创建一个名为item的类似乎很简单,它将表示列表中的单个项 但是,我还有一个“孤立”项,用于将新项添加到列表中。例如,它有所有相同的属性、文本框、按钮等,用于添加图像、写入内容等,但它没有存储在数据库中,它有一个新的“添加”按钮,将其保存到数据库中,然后将其添加到列表中 我是否应该只创建一个名为item的类,并只创建一个名为isSaved的属性,以确定是否显示“添加”按钮,是否显示该按钮的注释表单,等等
item
的类似乎很简单,它将表示列表中的单个项
但是,我还有一个“孤立”项,用于将新项添加到列表中。例如,它有所有相同的属性、文本框、按钮等,用于添加图像、写入内容等,但它没有存储在数据库中,它有一个新的“添加”按钮,将其保存到数据库中,然后将其添加到列表中
我是否应该只创建一个名为item
的类,并只创建一个名为isSaved
的属性,以确定是否显示“添加”按钮,是否显示该按钮的注释表单,等等
或者我应该创建两个独立的类,一个调用newItem
并将其用于孤立项,另一个调用savedItem
并将其用于数据库中已经存在的项
另外,这是在javascript中实现的,所以我认为我不能使用太多的继承。一般来说,当行为或属性需要更改时,您可以创建子类。如果唯一的区别是对象是否保存到数据库中,则很可能不是子类的候选对象。添加一个属性,例如
isSaved
,可能是最好的选择。除非,也就是说,保存/未保存时一个的行为与另一个的行为根本不同。javascript可以很容易地使用原型或jQuery扩展进行继承。在我看来,您应该将对象的UI与其数据分开。使用“类”保存所有数据,然后将数据绑定到UI元素。不同的是,如果未保存,则需要显示用于输入标题/内容的文本框,而如果保存,则仅显示保存的标题/内容以及用于编辑这些标题/内容的按钮,用于切换文本框,如果只保存注释,则注释表单将可见。您有什么建议?我不确定这是在什么样的环境中创建的,但您所描述的通常是视图代码。我个人的观点(尽管很多其他人都这么认为)是MVC(模型-视图-控制器)体系结构(或其中的一些变体)是构建应用程序的合适方法。如果您保持这种逻辑分离,那么代码无论如何都不属于您的模型。相反,视图将根据isSaved
是真是假来显示表单或内容。真的,谢谢,这就是答案,我将它分成两个视图,并使用isSaved
来确定要显示哪个视图。干杯