前几天写了个ShaderTool,随着功能的增多,程序越来越复杂,逻辑变得混乱,以至于想要增加功能变得越发困难,原因在于程序的设计存在缺陷,耦合性差,而且难于复用,看着如此杂乱的代码,我打算重写这个程序,于是变学习设计模式,边套用到ShadreTool,由于对设计模式的理解还有限,所以可能有用的不当之处,即便如此,我再版的程序已经比之前好了很多。
首先看看两者目录结构的变化。
Maindow是用来维护界面的,因此希望之和界面逻辑相关。上下两图看似差别不大,实际上下图比上图增加了很多的功能,同时界面逻辑却更加清晰。
由于模式清晰,因此随意的设计,更改界面的布局和逻辑变得比之前容易,做了4个dock窗口。
将来把此程序改成OpencvTool,或其他tool也会比较简单。