面向对象之自定义数据控件

面向对象之自定义数据控件



为了叙述问题的方便,我们把能与数据源绑定的可视化控件暂且称为“数据控件”,它们在反映用户需求方面有着很多类似或相通的地方,所以被归结在同一个章节中讨论。
在语言环境中提供的控件以适应性广泛为主要目标,重点是解决通用性方面的问题。当这些控件应用于特定的操作场景时,仍然会在应用层面上产生另外一些带有普遍性的问题。之所以要提倡自定义的控件封装,就是要基于这些问题的共性实现统筹解决。这些新问题的产生基本上来源于“汉语环境”与“信息管理系统”两个特定的场景。在此前提下,我们来研究还有哪些具有共性的问题需要改进与完善。
数据是应用之源。在用户评价应用的时候,对数据录入部分的功能往往会非常关注。毫不客气地说:他们会关注到每个控件、每一下按键、每个操作逻辑的细节。这并不是用户过于挑剔,应当是基于用户自身的应用检验。因为任何微小的差别对他们来说都将意味着一种实际性的工作量。程序员认为:在一个简短的操作逻辑中多按一下键算不了什么,但操作员必须要永无休止地在这个逻辑上按这个键,所以,用户的关注不无道理。
从总体上看,数据录入过程重点要解决的问题可以归结为以下两大类:
1.对可能被引用的数据要找到通用的描述方式,设置过程要简单、精准、完备;
2.对操作键盘录入、操作逻辑或鼠标逻辑要适合母语应用,合理简洁。
不要小看这两个简单的原则,它会遍布到系统的各个角落,会在很多界面的设计中表现为类似代码的不断重复。如果没有系统化的构思,由此产生的代码工作量可以占到系统的30%左右。仅以一个简单的文本框为例:它在录入过程中会引发几个或十几个各不相同的需求状态或操作逻辑,这些需求在针对到具体场景时还会衍生出一系列的变化。如果只是针对每个实例来编写代码肯定是个痛苦不堪的过程,原因是它被引用的次数太多了。如果我们能把这些需求封装起来,就能屏蔽掉绝大多数的实例级代码,又能使其功能与作用有所改善。如果封装得好就能像使用系统控件一样简便,但其功能性却大大加强。
实际上,能够用来支持录入(或展示)数据的控件可能很多,但使用频率最高、体现用户需求最直接、最复杂的并不是太多,我们就以这些典型控件作为自定义封装的样本,从中领悟在设计过程中的封装是如何被付诸实践的。其中要重点体会的是如何抽象需求、如何设置属性、如何构造方法并在恰当的时机调用。善于发现并善于凝练需求是提升设计能力的关键,而其代码实现只是实现构思的载体。
数据录入是应用的基础,构造数据录入控件则是系统设计的基础。开发环境提供的控件本身就是一种基本的分类与封装,但其功能性远远不能满足应用要求,自定义封装是完善其功能、方法与操作逻辑的客观需要。
在我们了解并实现了自定义的控件封装之后,就可以把这些设计直接引入自己的项目中应用,相信它们能够给你带来以一种全新的感受。

根据原作 https://pan.quark.cn/s/459657bcfd45 的源码改编 Classic-ML-Methods-Algo 引言 建立这个项目,是为了梳理和总结传统机器学习(Machine Learning)方法(methods)或者算法(algo),和各位同仁相互学习交流. 现在的深度学习本质上来自于传统的神经网络模型,很大程度上是传统机器学习的延续,同时也在不少时候需要结合传统方法来实现. 任何机器学习方法基本的流程结构都是通用的;使用的评价方法也基本通用;使用的一些数学知识也是通用的. 本文在梳理传统机器学习方法算法的同时也会顺便补充这些流程,数学上的知识以供参考. 机器学习 机器学习是人工智能(Artificial Intelligence)的一个分支,也是实现人工智能最重要的手段.区别于传统的基于规则(rule-based)的算法,机器学习可以从数据中获取知识,从而实现规定的任务[Ian Goodfellow and Yoshua Bengio and Aaron Courville的Deep Learning].这些知识可以分为四种: 总结(summarization) 预测(prediction) 估计(estimation) 假想验证(hypothesis testing) 机器学习主要关心的是预测[Varian在Big Data : New Tricks for Econometrics],预测的可以是连续性的输出变量,分类,聚类或者物品之间的有趣关联. 机器学习分类 根据数据配置(setting,是否有标签,可以是连续的也可以是离散的)和任务目标,我们可以将机器学习方法分为四种: 无监督(unsupervised) 训练数据没有给定...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值