码农的自我修养 - 软件中设置管理的设计

本文介绍了产品配置管理的三个方面:固有设置、默认设置和实时设置。固有设置在产品出厂后一般不可更改,如硬件参数、序列号等;默认设置允许用户恢复或定制,存储于外部文件;实时设置则根据用户操作实时变化,用于保存用户的个性化选项。这些设置文件独立于程序,增强了软件灵活性,并在启动时加载更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

针对某个领域的某种产品,根据不同的产品,会有不同的使用要求,自然需要在软件功能上,有不同的设置参数。

这些设置参数通常保存为外部文件,独立于程序存在。这样保证了设置的可持续性,关机掉电后,设置都不会丢失。

一般来说,可能包含三类设置。

1,产品的固有设置,这部分是根据产品的特性进行的设置。

比如在产品出场时进行的屏幕参数矫正,硬件参数,产品的名称和序列号等。

这些设置有些是和产品的硬件相关的,有些是已经预定义好的,但共同特点是一旦产品出厂后,这些设置就不应该再更改了。

这类设置不是为用户开放的,设置之后,没有特殊原因是不能修改的。

将这些信息作为外置设置文件来存储,增强了软件了灵活性。

在机器上电启动后,做完必要初始化,就会读取此产品设置文件,来进行相应的更新。

而在产线上,操作工也可以根据实际情况,对这些设置进行修改,设置完成后可以出货。

2,一般参数的默认设置。

产品一般都会带一个恢复默认设置的功能,这个默认设置也是一个独立的处于程序外部的文件。

选择恢复默认,就会将这部分默认设计载入到软件程序中。

这个默认设置可以按照产品而定,也可以按照用户需求进行一定的需改。

比如有些用户有些偏好设置,就可以加入到默认设置中。

需要注意的是,如何理解默认设置。从程序本身角度讲,真正的默认设置在程序里,当产品上电,程序第一次执行,各个设置都会有默认的数值。

这些默认的数值是硬编码在程序中的,一般可能是用一些产品的宏定义来区分使能不同的代码,在代码中为不同的产品区分不同的设置。

然后,再会检查外部的默认配置文件是否存在,如果存在,则载入。

所以,在这个默认设置文件中,不需要存储所有的设置,只需要存储发生变化或需要更改的设置内容即可。

如果这个设置文件不存在,当用户执行恢复默认操作,则使用的就都是代码里写死的默认设置。

这个道理也同样适用于其他配置文件。

3,一般参数的实时设置。

这些设置是用户实时使用的设置。当用户修改过后的参数都会保存在这里,当下次重新上电或启动时会载入。

这些设置是根据用户使用实时变化的,比如音量、操作模式或一些记忆信息等设置。

而是用这个设置的目的,就是在程序运行起来后,根据这个设置文件来更新程序内存中的设置参数表。

也就是说,对于程序中实际使用的设置参数来讲,一个是保存在文件中的值,还一个是内存中的实际值。

一般情况下,内存中的值修改了,都会同步到文件中。

但在有些情况下,这两套设置值可以区分对待或使用,可以在程序运行中临时改变内存中的设置,而不同步到文件中。

根据使用情况来修改或使用设置值,并根据需要决定是否要存储到非易失性存储设备中。

所以,对于一般设置参数,内存中需要两份存储空间,一个表是实时使用的内存值,一个表是映射到外部存储文件的。

那根据上面的介绍,设置功能可以定义为3个类来管理:

ProductConfiguration ,DefaultConfiguration,WorkingConfiguration。

这里涉及的只是单个产品的设置管理,如果涉及多个设备的互联或组合,则需要令行考虑。

而具体类的设计,有待继续。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜流冰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值