应用系统的开发经常有参数动态刷新的问题,一般的方案会比较复杂,其实只要保持一个原则: 保持类的无状态,那么动态刷新参数是一简很简单的事情. 举下面这个例子.
将我们原来的代码:
//我们有很多类似这样的UserSerive类,每个类都维护自己的状态,每个类的属性都需要动态刷新
public class UserService {
private String username; //现username为实例属性,刷新会十分麻烦
public void setUsername(String v) {
this.username = v;
}
public void doSomeThing() {
loadUserDetail(username);
}
}
username是一个需要更新的系统参数,而UserSerivce存在spring容器中将username变量注入进来。 那么如果username这个参数需要更改的话会比较麻烦
修改为无状态的类:
public class StateLessUserService {
public void doSomeThing2() {
//实现1: 静态方法得到配置,由Config统一维护参数
loadUserDetail(Config.getProperty("username"));
}
}
如实现1,现我们使用一个统一的Config类得到配置参数,只需要刷新该类,那username配置参数即可修改。
这样的好处:
1. 参数的集中式管理
2. 类无状态,参数刷新将十分简单
再描述一个原则:
既然可以用如此简单的方法达到我们的目的,为何要搞出那么复杂的方案. (简单就是美)
分享到:
相关推荐
2. **单片机控制**:单片机是整个系统的控制中心,通过编写程序来控制数码管的亮灭状态,实现所需信息的显示。通常会使用C语言或汇编语言编程。 3. **时钟显示**:在本任务中,目标是实现简易时钟的显示。这需要...
- **定义**:定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。 - **应用场景**: - 一个对象结构包含很多类对象,它们有不同的接口,而想对这些对象...
当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式在Java编程中广泛使用,特别是在事件驱动或用户界面设计中。 在Java中,观察者模式是通过`java.util.Observer`接口和`java.util....
- 可以设计一个Coffee类,包含价格属性,然后创建不同的Product类(如Sugar、Ice等),它们继承自一个通用的ProductBase类。咖啡总价格通过计算Coffee价格和附加产品价格得到。 11. **SQL注入**: - SQL注入是...
强大的商品管理无疑给管理者提供了便利,新增的弹出图片显示功能,只需将鼠标移到商品上,即可弹出此商品的图片,非常方便,同时前台报价中心也增加了鼠标指向后显示图片的功能,提供用户的购买欲望。 二八、增加...
根据商城的设计原则,对于同一商品如果多次点购买分按一个商品购买多次计算,但用户选择的同一个商品,如果选择了不同颜色或尺码,这个问题就出现了,时尚版现已解决这个问题,同一商品选择不同颜色或尺码进行多次...
4. **与MVC架构的融合**:EGORefreshTableHeaderView与MVC(Model-View-Controller)架构兼容良好,开发者只需在控制器中实现代理方法,即可完成下拉刷新的功能。 这两个库虽然现在已被更现代的API,如NSURLSession...
强大的商品管理无疑给管理者提供了便利,新增的弹出图片显示功能,只需将鼠标移到商品上,即可弹出此商品的图片,非常方便,同时前台报价中心也增加了鼠标指向后显示图片的功能,提供用户的购买欲望。 二七、增加...
Java编写的显示器显示模式检测程序 2个目标文件 内容索引:JAVA源码,系统相关,系统信息检测 用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作...
强大的商品管理无疑给管理者提供了便利,新增的弹出图片显示功能,只需将鼠标移到商品上,即可弹出此商品的图片,非常方便,同时前台报价中心也增加了鼠标指向后显示图片的功能,提供用户的购买欲望。 二八、增加...
- **状态机**:根据当前状态和输入信号确定下一个状态。 - **状态图**:用图形表示状态转移的过程。 - **时序图**:显示各个信号随时间变化的情况。 ### 二、数字电路中的特殊组件 1. **三态门**: - **定义**...
权限最小化原则建议只授予用户完成任务所需的最小权限集。这样可以减少因误操作或恶意行为造成的损害。例如,普通用户可能不需要修改系统配置文件的权限。 #### 6. 安全默认设置 (6) 许多安全问题源于不正确的配置...
同时,它还包含了一个启动脚本(通常是.bat文件),该脚本用于便捷地启动Elasticsearch服务,这对于开发者和系统管理员来说非常方便,因为他们无需手动配置复杂的命令行参数。 “启动bat”指的是这个压缩包内的启动...
根据商城的设计原则,对于同一商品如果多次点购买分按一个商品购买多次计算,但用户选择的同一个商品,如果选择了不同颜色或尺码,这个问题就出现了,Html静态版现已解决这个问题,同一商品选择不同颜色或尺码进行...
目标是提供一个用户友好且健壮的解决方案,确保每次AJAX请求只被处理一次,同时不影响正常的用户交互。 2.1.2 与其他系统关系 该系统设计需与前端用户界面、后端服务器接口以及数据库管理系统紧密结合,确保在整个...
OWASP(开放式网络应用安全项目)是一个全球性的非营利组织,致力于提高软件安全意识,并提供免费的资源来帮助开发人员构建更安全的应用程序。OWASP安全编码规范快速参考指南是针对开发人员的一份实用文档,旨在提供...
在Android开发中,`FragmentPagerAdapter`是用于管理`ViewPager`中的`Fragment`集合的一个关键类。`ViewPager`是一个可以左右滑动查看多个页面的视图组件,常用于实现类似TabLayout的效果,展示丰富的交互界面。`...
6. **状态管理**:保持当前页数的状态,确保刷新页面后仍能记住用户的浏览位置。 7. **无障碍访问**:考虑到辅助技术的用户,分页组件应遵循无障碍设计原则,如使用`aria-labels`等属性。 8. **兼容性**:好的分页...