Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将小部件的维护状态重构为更干净的版本_Javascript_Design Patterns_Refactoring_State - Fatal编程技术网

Javascript 如何将小部件的维护状态重构为更干净的版本

Javascript 如何将小部件的维护状态重构为更干净的版本,javascript,design-patterns,refactoring,state,Javascript,Design Patterns,Refactoring,State,背景故事 我继承了一堆我想重构的代码。它是一个用javascript编写的UI应用程序 当前状态: 我们的主要应用程序由几个UI组件组成。每个组件都有输入字段、文本框、菜单等),如“票证”、“客户信息”等。根据输入,在哪里调用应用程序,谁是用户,我们启用/禁用、隐藏、显示、更改标题 不幸的是,该应用程序发展到了一个难以扩展、难以添加新功能的地步。主驱动程序(应用程序代码)调用各个组件的设置/取消设置功能。所以很多东西都是这样的 主应用程序单元 function1() { **call_fu

背景故事

我继承了一堆我想重构的代码。它是一个用javascript编写的UI应用程序

当前状态:

我们的主要应用程序由几个UI组件组成。每个组件都有输入字段、文本框、菜单等),如“票证”、“客户信息”等。根据输入,在哪里调用应用程序,谁是用户,我们启用/禁用、隐藏、显示、更改标题

不幸的是,该应用程序发展到了一个难以扩展、难以添加新功能的地步。主驱动程序(应用程序代码)调用各个组件的设置/取消设置功能。所以很多东西都是这样的

主应用程序单元

function1() {
   **call_function2()**
   component1.setX(true);
   component1.setY(true);
   component2.setX(false);
}

call_function2() { 
       // it may repeat some of the code function1 called 
}
我们在主要工会中有很多这样的人

我正在清理这乱七八糟的东西。维护小部件状态的最佳方法是什么?
如果您需要我澄清,请告诉我。

查看您的代码看起来像是直接从函数访问视图代码,正如您正确指出的,这是一个坏主意。如果您的应用程序是很多GUI的东西,那么我建议您使用MVVM方法。 它将使您的视图、绑定和功能完全分开。将来,如果您想更改GUI,您可以在不接触任何其他类的情况下进行更改。 我不是JS背景,但这是我的.NETEXP所说的