锁定老帖子 主题:讨论几个常用的模式
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-12-15
最后修改:2010-12-15
躁动的绵羊 写道
很明显在刷帖 这种空洞的帖子居然精华
什么样子的帖子时不空洞的呢? ----------------------------
明白了,这种贴才应该是不空洞的精华帖,如下~
躁动的绵羊 写道
首先,请JE上的高手、老鸟们原谅我把这道题拿出来讨论,也许,这题对你们来说只是小菜一碟,我却是觉得这种题目比较少见,我也不太清楚。但是,我想拿出来与大家分享下,讨论讨论,希望能挖掘出它的原理,让不清楚的小鸟们长长见识,当然也包括我,呵呵! for(int i = 0;i<10000;i++) { for(int j = 0;j<1000;j++) { for(int k = 0;k<100;k++) { function(i,j,k);\ } } }
|
|
返回顶楼 | |
发表时间:2010-12-15
很多帖子精华的不是主题帖本身内容,精华的是 讨论内容
抛砖引玉,精华的是引出来的玉。
kkqqcom 写道
躁动的绵羊 写道
很明显在刷帖 这种空洞的帖子居然精华
什么样子的帖子时不空洞的呢? ----------------------------
明白了,这种贴才应该是不空洞的精华帖,如下~
躁动的绵羊 写道
首先,请JE上的高手、老鸟们原谅我把这道题拿出来讨论,也许,这题对你们来说只是小菜一碟,我却是觉得这种题目比较少见,我也不太清楚。但是,我想拿出来与大家分享下,讨论讨论,希望能挖掘出它的原理,让不清楚的小鸟们长长见识,当然也包括我,呵呵! for(int i = 0;i<10000;i++) { for(int j = 0;j<1000;j++) { for(int k = 0;k<100;k++) { function(i,j,k);\ } } }
|
|
返回顶楼 | |
发表时间:2010-12-24
哈哈,楼上,你真的太搞了
|
|
返回顶楼 | |
发表时间:2011-01-18
常用的模式太多了吧,比如说代理模式,装饰模式,这些都是在编程中常用的模式.
|
|
返回顶楼 | |
发表时间:2011-01-24
androidleader 写道
0、资源管理模式 这个不算是个模式,我的大概意思是,在一个托管的环境(jvm clr)或是其他环境中,如果需要使用外部的(独占的)资源, 一般都需要显式的initialize和dispose(close)。因为这个资源一般可以被其他地方使用,需要释放掉持有的锁。 比如,文件/网络io,bitmap/graphics等等。
1、池化技术(pool)
一般来说,我们要使用某个资源,初始化,获得实例,使用,关闭,即可。 如果这个资源的创建代价比较昂贵,我们可以使用singleton的方式,管理一个实例。但是一个实例不够用怎么办?创建多个! 这样就有了一组实例了。我们就需要管理这一个池了。例如线程池,数据库连接池,网络连接池。池是singleton的一个自然延伸。 如果我们不清楚多大合适,可以设置一个初始大小。不停的创建,肯定是不合适的(outofmemory),资源总会耗尽。所以,设定一个最大值,超过了拒绝或是排队。然后再做一些其他的管理上的策略。比如线程池的大量并发时的拒绝策略。比如数据库连接池,为了使基于池的使用依然是原来的jdbc方式,同样的connection,open,close。一般采取封装一层驱动的方式。使得实际使用的connection里包含一个真正的jdbc驱动的connection,close时只是标记了connection的状态,置为空闲,并不真正的close原生的connection。
数据缓存是另一种池化技术的应用。关注的是直接可用的业务数据,而不是获取数据的外部资源。这方面的讨论时很多的。几个点:缓存策略,命中率,同步,集群等等。
2、上下文模式(context) 这个模式很常见,在j2ee servletContext,jsf facesContext,esb messageContext,workflow workflowContext等等地方,都有它的存在。 通常来说,如果一个大的处理流程,被设计成几个不同的处理阶段,组成一个回路,那么,我们可以把环境相关的信息,流程相关的变量和中间结果,流程中要传递的消息和数据,都放到上下文这个容器里。这些,主流程中,传递的就不再只是消息数据,而是尽可能多的信息。在主流程中处理的是context,可以修改其中的任何可修改信息,转换。在中间的分支,或拦截器、过滤器中,我们可以传递数据,做其他处理(拦截,log,monitor),不影响主流程中的处理。主流程的任何处理点,都可以使用一致的context,获取任何需要的信息。
context大箩筐,乱七八糟往里装 个人觉得对context还要建模,分类,系统数据还是用户数据?数据信息还是控制指令? 分得越清晰,业务人员使用起来才方便
|
|
返回顶楼 | |
发表时间:2011-01-25
LZ是搞android的?
|
|
返回顶楼 | |
发表时间:2011-02-22
值得深讨,期待大虾更详细的讲解
|
|
返回顶楼 | |
发表时间:2011-03-21
池化,其实说得更精确应该是多例模式。其主要难点在于处理并发以及资源控制(即什么时候释放资源,以及预创建多少资源)。
|
|
返回顶楼 | |
发表时间:2011-03-22
这是一道用友的面试题。题目是:请优化下面代码,并给出原因: for(int i = 0;i<10000;i++) { for(int j = 0;j<1000;j++) { for(int k = 0;k<100;k++) { function(i,j,k);\ } } }
没看明白怎么优化, 有tx看明白了吗?
|
|
返回顶楼 | |
发表时间:2011-03-22
晕,没想到java 编译器居然不会优化这个循环。
|
|
返回顶楼 | |