??xml version="1.0" encoding="utf-8" standalone="yes"?>www.综合,精品一区二区三区四区五区,中文一区一区三区免费http://www.aygfsteel.com/selina/category/1192.html<hr>
<div align="center"><a href="http://www.aygfsteel.com/selina/">..::[Selina ?AlleNny]::..</a></div>
<br>
Sunny day with the rain together<br>
像苦与甜交织的景?lt;br>
春天的花冬天的寒?lt;br>
都是色彩~纷的h?lt;br>
<br>
Sunny day with the rain together<br>
旉转动着古老的~䆾<br>
黑暗的夜明亮的早?lt;br>
那都是我们丰盛的旅程<br>
<br>
<div align="center"><a >Turn Left Turn Right</a></div>zh-cnFri, 02 Mar 2007 03:36:18 GMTFri, 02 Mar 2007 03:36:18 GMT60- 写javaE序最Ҏ犯的21U错?lt;转蝲>http://www.aygfsteel.com/selina/articles/34619.htmlSelinaSelinaFri, 10 Mar 2006 02:49:00 GMThttp://www.aygfsteel.com/selina/articles/34619.htmlhttp://www.aygfsteel.com/selina/comments/34619.htmlhttp://www.aygfsteel.com/selina/articles/34619.html#Feedback0http://www.aygfsteel.com/selina/comments/commentRss/34619.htmlhttp://www.aygfsteel.com/selina/services/trackbacks/34619.html
代码重复几乎是最常见的异味了。他也是Refactoring 的主要目标之一。代码重复往往来自于copy-and-paste
的编E风根{与他相对应OAOO 是一个好pȝ的重要标志(请参见:http://www.erptao.org/download.php?op=viewsdownload&sid=6Q?
2QLong method
它是传统l构化的“遗毒“。一个方法应当具有自我独立的意图Q不要把几个意图攑֜一P我的《大cd长方法》一文中有详l描q?
3QLarge Class
大类是你把太多的责Ml了一个类。这里的规则是One Class One Responsibility?
4QDivergent Change
一个类里面的内容变化率不同。某些状态一个小时变一ơ,某些则几个月一q才变一ơ;某些状态因斚w的原因发生变化,而另一些则因ؓ其他斚w的原因变一ơ。面向对象的抽象是把相对不变的和相对变化相隔离。把问题变化的一斚w和另一斚w盔RR这使得q些相对不变的可以重用。问题变化的每个斚w都可以单独重用。这U相异变化的共存使得重用非常困难?
5QShotgun Surgery
q正好和上面相反。对pȝ一个地方的改变涉及到其他许多地方的相关改变。这些变化率和变化内容相似的状态和行ؓ通常应当攑֜同一个类中?
6QFeature Envy
对象的目的就是封装状态以及与q些状态紧密相关的行ؓ。如果一个类的方法频J用get Ҏ存取其他cȝ状态进行计,那么你要考虑把行为移到涉及状态数目最多的那个cR?
7QData Clumps
某些数据通常像孩子一h玩耍:一起出现在很多cȝ成员变量中,一起出现在许多Ҏ的参C?.Q这些数据或许应该自q立Ş成对象?
8QPrimitive Obsession
面向对象的新手通常习惯使用几个原始cd的数据来表示一个概c譬如对于范_他们会用两个数字。对于MoneyQ他们会用一个QҎ来表C。因Z没有使用对象来表N题中存在的概念,q得代码变的难以理解,解决问题的难度大大增加?
好的习惯是扩充语a所能提供原始类型,用小对象来表C围、金额、{化率、邮政编码等{?
9QSwitch Statement
Z帔R的开兌句是OO 的大敌,你应当把他变为子cRstate 或strategy?
10QParallel Inheritance Hierarchies
q行的承层ơ是shotgun surgery 的特D情c因为当你改变一个层ơ中的某一个类Ӟ你必d时改变另外一个层ơ的q行子类?
11QLazy Class
一个干zM多的cR类的维护需要额外的开销Q如果一个类承担了太的责QQ应当消除它?
12QSpeculative Generality
一个类实现了从未用到的功能和通用性。通常q样的类或方法唯一的用htestcase。不要犹豫,删除它?
13QTemporary Field
一个对象的属性可能只在某些情况下才有意义。这L代码难以理解。专门徏立一个对象来持有q样的孤儿属性,把只和他相关的行为移到该cR最常见的是一个特定的法需要某些只有该法才有用的变量?
14QMessage Chain
消息铑֏生于当一个客户向一个对象要求另一个对象,然后客户又向q另一对象要求另一个对象,再向q另一个对象要求另一个对象,如此如此。这Ӟ你需要隐藏分z?
15QMiddle Man
对象的基本特性之一是装Q而你l常会通过分派d现封装。但是这一步不能走得太q,如果你发C个类接口的一大半Ҏ都在做分z,你可能需要移去这个中间h?
16QInappropriate Intimacy
某些cȝ互之间太亲密Q它们花费了太多的时间去砖研别h的私有部分。对人类而言Q我们也怸应该太假正经Q但我们应当让自qcM格遵守禁Ʋ主义?
17QAlternative Classes with Different Interfaces
做相同事情的Ҏ有不同的函数signatureQ一致把它们往cdơ上U,直至协议一致?
18QIncomplete Library Class
要徏立一个好的类库非常困难。我们大量的E序工作都基于类库实现。然而,如此q泛而又相异的目标对库构提Z苛刻的要求。库构徏者也不是万能的。有时候我们会发现库类无法实现我们需要的功能。而直接对库类的修Ҏ非常困难。这时候就需要用各种手段q行Refactoring?
19QData Class
对象包括状态和行ؓ。如果一个类只有状态没有行为,那么肯定有什么地方出问题了?
20QRefused Bequest
类传下来很多行为和状态,而子cd是用了其中的很小一部分。这通常意味着你的cdơ有问题?
21QComments
l常觉得要写很多注释表示你的代码难以理解。如果这U感觉太多,表示你需要Refactoring?

]]> - 高效J2ME应用E序U诀二十?lt;转蝲> http://www.aygfsteel.com/selina/articles/33577.htmlSelinaSelinaSat, 04 Mar 2006 02:46:00 GMThttp://www.aygfsteel.com/selina/articles/33577.htmlhttp://www.aygfsteel.com/selina/comments/33577.htmlhttp://www.aygfsteel.com/selina/articles/33577.html#Feedback0http://www.aygfsteel.com/selina/comments/commentRss/33577.htmlhttp://www.aygfsteel.com/selina/services/trackbacks/33577.html
本文主要是说明j2meq_上的Ҏ优化ҎQ与j2se重复的一些技巧就不再赘述了?
1.昄图象时确定好你的fpsQ最好先做几ơ小实验Q这栯让你在显C效果和q行速度上有比较好的q?br>
2.GamaCanvas.getGraphics()每次都会产生一个全新的对象Q但是对q些对象的操作都是对同一个graphicsQ所以还是只取一ơ供后面使用?br>
3.让多个对象用同L监听器,比如让主MIDletcd现CommandListener和ItemStateListener接口?br>
4.考虑使用手机开发商提供的一些sdkQ没Z比他们更了解他们手机Q所以有些时候能显著提高速度Q特别是囄Q视频用方面?br>
5.使用监视工具分析MIDlet的瓶颈,wtk和各个公司提供的开发包里都会有Q可以找到程序的q。如果是在手ZQ用timer试你认为有可以的地斏V?br>
6.使用System.gc()Q在无线E阻塞的情况下可以有效的~解内存压力Q但是有些公怸是太推荐使用(如nokia).sun的说法也是越低端的机子执行的慢QMQ慎用吧?br>
7.用固定的数组代替使用Vector?br>
8.囄的优化。考虑使用讑֤的规|可能高分辨率的图片不一定显C的出来?br>
9.不用的对象赋gؓnullQؓ更快的回收?br>
10.用淆器处理你的cLӞ防止反编译,q有一个好的副作用是它减class文g的大,因ؓh器往往用较短的字符串代替原来的?
量或Ҏ名?br>
11.若数据太大,可以数据编码ؓ字符Ԍq行时解码,或把数据存ؓ二进制文件ƈ与程序打包,用类装蝲器的getResourceAsStreamҎ在运行时存取?br>
12.使用现有的类Q比如你使用了GameCanvasQ就不用自己生成off-screenQ另外像CLDC的profile没有构造集合类Q所以我们可以用内徏的Hashtable和VectorcL实现?br>
13.用优化Y件jPresto(http://www.s5systems.com/jPresto.htm)---没用q,不过暂且写上吧?br>
如果Ҏ件大,内存限制非常严格Q这时候就只能用一些非常规的方法了Q可能这些方法背MOO思想Q但是多数情况下Q它是vC非常U极的作用的(但是也可?Q假如你更在意于E序的维护和扩展斚wQ我你还是蟩q吧?_-||
14.把所有资源文件做成一个数据文件?br>
15.把所有的图片文件做成一个文Ӟ在运行时?切割"开?br>
16.使用有限的面向对象,因ؓUa的OO往往意味着更多的虚ҎQ更多的层次关系Q更多的class?br>
17.生成可能少的classQclass都有一定的pȝ开销?
18.class中生成尽可能的Ҏ。速度比较Q同步方?lt;接口Ҏ<实例Ҏ<finalҎ<静态方法?br>
19.用final static限定Ҏ可以获得幅的速度提高?br>
20.Ҏ据成员用public限定Q来代替get和setҎQ不q要注意安全性?br>
J2ME优化可能使你的程序在不同的模拟器Q不同的讑֤下有不同的运行效果,所?优化一定要建立在开发设备的规格上?br>
以上所列D的方法不一定在所有midp讑֤上都起作用,也不一定都适合每一个程序,MQ应该根据自w的情况?img src ="http://www.aygfsteel.com/selina/aggbug/33577.html" width = "1" height = "1" />
]]> - Java文g操作大全<转蝲>http://www.aygfsteel.com/selina/articles/1569.htmlSelinaSelinaMon, 28 Feb 2005 12:47:00 GMThttp://www.aygfsteel.com/selina/articles/1569.htmlhttp://www.aygfsteel.com/selina/comments/1569.htmlhttp://www.aygfsteel.com/selina/articles/1569.html#Feedback1http://www.aygfsteel.com/selina/comments/commentRss/1569.htmlhttp://www.aygfsteel.com/selina/services/trackbacks/1569.html阅读全文

]]>
վ֩ģ壺
|
|
ɽ|
|
|
|
¸|
|
Ӷ|
ʷ|
|
ɳ|
ƽ|
̫|
Ϻ|
ƽ|
Դ|
|
|
ƺ|
|
|
ҽ|
|
Ȫ|
ǿ|
|
Դ|
|
|
կ|
̨ǰ|
|
|
¹|
ƽɽ|
ͭϿ|
ױ|
ٳ|
|
|