`
badqiu
  • 浏览: 673558 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

系统参数的动态刷新,只需一个原则:保持类的无状态

阅读更多

应用系统的开发经常有参数动态刷新的问题,一般的方案会比较复杂,其实只要保持一个原则: 保持类的无状态,那么动态刷新参数是一简很简单的事情. 举下面这个例子.

 

将我们原来的代码:

 

//我们有很多类似这样的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. 类无状态,参数刷新将十分简单

 

 

再描述一个原则:

既然可以用如此简单的方法达到我们的目的,为何要搞出那么复杂的方案. (简单就是美)

 

4
2
分享到:
评论
1 楼 zidafone 2013-11-02  
这样每次都读取磁盘文件,还是不太舒服
还是用个缓存,更新配置后手动触发更新缓存比较好吧?

相关推荐

    单片机综合实践 数码管动态显示系统的设计与制作任务单2.doc

    2. **单片机控制**:单片机是整个系统的控制中心,通过编写程序来控制数码管的亮灭状态,实现所需信息的显示。通常会使用C语言或汇编语言编程。 3. **时钟显示**:在本任务中,目标是实现简易时钟的显示。这需要...

    23种设计模式的基本介绍

    - **定义**:定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。 - **应用场景**: - 一个对象结构包含很多类对象,它们有不同的接口,而想对这些对象...

    观察者模式

    当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式在Java编程中广泛使用,特别是在事件驱动或用户界面设计中。 在Java中,观察者模式是通过`java.util.Observer`接口和`java.util....

    .net 面试题 大全

    - 可以设计一个Coffee类,包含价格属性,然后创建不同的Product类(如Sugar、Ice等),它们继承自一个通用的ProductBase类。咖啡总价格通过计算Coffee价格和附加产品价格得到。 11. **SQL注入**: - SQL注入是...

    网趣网上购物系统的部分特点与精华

    强大的商品管理无疑给管理者提供了便利,新增的弹出图片显示功能,只需将鼠标移到商品上,即可弹出此商品的图片,非常方便,同时前台报价中心也增加了鼠标指向后显示图片的功能,提供用户的购买欲望。 二八、增加...

    网趣网上购物系统时尚版 V9.0

    根据商城的设计原则,对于同一商品如果多次点购买分按一个商品购买多次计算,但用户选择的同一个商品,如果选择了不同颜色或尺码,这个问题就出现了,时尚版现已解决这个问题,同一商品选择不同颜色或尺码进行多次...

    打包好的ASIHTTPRequest,EGORefreshTableHeaderView

    4. **与MVC架构的融合**:EGORefreshTableHeaderView与MVC(Model-View-Controller)架构兼容良好,开发者只需在控制器中实现代理方法,即可完成下拉刷新的功能。 这两个库虽然现在已被更现代的API,如NSURLSession...

    网趣网上购物系统时尚版

    强大的商品管理无疑给管理者提供了便利,新增的弹出图片显示功能,只需将鼠标移到商品上,即可弹出此商品的图片,非常方便,同时前台报价中心也增加了鼠标指向后显示图片的功能,提供用户的购买欲望。 二七、增加...

    JAVA上百实例源码以及开源项目源代码

    Java编写的显示器显示模式检测程序 2个目标文件 内容索引:JAVA源码,系统相关,系统信息检测 用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作...

    网趣网上购物系统时尚版V13.0

    强大的商品管理无疑给管理者提供了便利,新增的弹出图片显示功能,只需将鼠标移到商品上,即可弹出此商品的图片,非常方便,同时前台报价中心也增加了鼠标指向后显示图片的功能,提供用户的购买欲望。 二八、增加...

    重庆大学数字电子技术试题.pdf

    - **状态机**:根据当前状态和输入信号确定下一个状态。 - **状态图**:用图形表示状态转移的过程。 - **时序图**:显示各个信号随时间变化的情况。 ### 二、数字电路中的特殊组件 1. **三态门**: - **定义**...

    程序设计的25个原则

    权限最小化原则建议只授予用户完成任务所需的最小权限集。这样可以减少因误操作或恶意行为造成的损害。例如,普通用户可能不需要修改系统配置文件的权限。 #### 6. 安全默认设置 (6) 许多安全问题源于不正确的配置...

    elasticHD-windows-amd64

    同时,它还包含了一个启动脚本(通常是.bat文件),该脚本用于便捷地启动Elasticsearch服务,这对于开发者和系统管理员来说非常方便,因为他们无需手动配置复杂的命令行参数。 “启动bat”指的是这个压缩包内的启动...

    网趣网上购物系统HTML静态版v2012版

    根据商城的设计原则,对于同一商品如果多次点购买分按一个商品购买多次计算,但用户选择的同一个商品,如果选择了不同颜色或尺码,这个问题就出现了,Html静态版现已解决这个问题,同一商品选择不同颜色或尺码进行...

    1AJAX避免用户重复提交请求实现方案设计说明书[定义].pdf

    目标是提供一个用户友好且健壮的解决方案,确保每次AJAX请求只被处理一次,同时不影响正常的用户交互。 2.1.2 与其他系统关系 该系统设计需与前端用户界面、后端服务器接口以及数据库管理系统紧密结合,确保在整个...

    OWASP安全编码规范快速参考指1

    OWASP(开放式网络应用安全项目)是一个全球性的非营利组织,致力于提高软件安全意识,并提供免费的资源来帮助开发人员构建更安全的应用程序。OWASP安全编码规范快速参考指南是针对开发人员的一份实用文档,旨在提供...

    FragmentPagerAdapter01

    在Android开发中,`FragmentPagerAdapter`是用于管理`ViewPager`中的`Fragment`集合的一个关键类。`ViewPager`是一个可以左右滑动查看多个页面的视图组件,常用于实现类似TabLayout的效果,展示丰富的交互界面。`...

    js翻页分页pageing组件.

    6. **状态管理**:保持当前页数的状态,确保刷新页面后仍能记住用户的浏览位置。 7. **无障碍访问**:考虑到辅助技术的用户,分页组件应遵循无障碍设计原则,如使用`aria-labels`等属性。 8. **兼容性**:好的分页...

Global site tag (gtag.js) - Google Analytics