你好,BANQ,请教模式

你好,BANQ,我有几个问题想请教一下:
第一:缓存是把一些已经创建的对象放在内存当中,当以后要使用的时候,直接从内存中调出,有和Flyweight模式一样,那么是否可以认为缓存是Flyweight模式的一个应用?
第二:关于J2EE系统性能方面,你认为提高性能:1>改善设计2>提高硬件配制,你将会选择哪个?你认为提高性能应该如果做?主要由什么决定?

>是否可以认为缓存是Flyweight模式的一个应用
可以这样认为。

>你认为提高性能应该如果做?主要由什么决定?
主要是设计,清晰简单的设计,当我们编写了很多代码类时,这就非常类似母鸡下了很多鸡蛋,如果不对鸡蛋排列布置,鸡蛋多了会压坏(代码类多了不整理,正常功能都无发编下去),但是要老母鸡去排列鸡蛋是不可能的,所以我们编写程序不能只做老母鸡,只会下蛋。

我们是人,需要学会排列处理这些鸡蛋,从灵活性和性能两个基本角度对他们进行二次审核和排列管理。

所以,性能设计是和对象设计时一并考虑的。

就象现在有失血模型(就是只有setter和getter方法)和Rich Domain Model之争,失血模型在分布式系统环境下性能非常好,序列化很轻松,而包含丰富行为的RDM则性能要差,所以,在不同场景有不同性能考量。

初学者起步首先掌握OO对象概念,但是必须认识到对象是一种方式,还必须从当前计算机发展水平来考量性能问题,因为性能其实和科技发展非常有关,过去java在286运行很慢,现在是64位CPU,认识到软件不但要快,而且要有灵活性,在性能保证下追求灵活性,这是我的一贯原则。