本周小结_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 本周小结

本周小结

 2011/12/23 9:32:15  kyfxbl  http://kyfxbl.iteye.com  我要评论(0)
  • 摘要:1、用的是apache的httpclient包,发现发送POST请求后,报一个异常:SocketException:Badfilenumber造成这个的原因是,过早地执行了HttpPost.about();这个方法应当是在响应完全结束,不再需要之后才能调用2、android自带一个layoutopt命令,可以对xml布局文件提出一些优化的建议3、“面向对象”开发,只是“结构化”开发的延伸。结构化开发封装了一些公共的操作,称为函数。而“面向对象”则对数据也进行了封装
  • 标签:
1、用的是apache的httpclient包,发现发送POST请求后,报一个异常
SocketException: Bad file number
造成这个的原因是,过早地执行了HttpPost.about();这个方法应当是在响应完全结束,不再需要之后才能调用

2、android自带一个layoutopt命令,可以对xml布局文件提出一些优化的建议

3、“面向对象”开发,只是“结构化”开发的延伸。结构化开发封装了一些公共的操作,称为函数。而“面向对象”则对数据也进行了封装,所以可以说是“结构化”开发方法的更进一步。

当然现在“面向对象”的开发思想是主流,但是也并不是绝对可以替代结构化开发,比如说对以下的代码
public void method(int i){
    switch(i){
        case 类型1:{}
        case 类型2:{}
        case 类型3:{}
        default:{}
    }
}

public void method2(int i){
    switch(i){
        case 类型1:{}
        case 类型2:{}
        case 类型3:{}
        default:{}
    }
}

这个就是典型的结构化编程
public class 类型1 extends 基类{
    public void method(){
        // TODO 做一些操作
    }
    public void method2(){
        // TODO 做一些操作
    }
}

public class 类型2 extends 基类{
    public void method(){
        // TODO 做一些操作
    }
    public void method2(){
        // TODO 做一些操作
    }
}

这个是面向对象的编程

这2种方式其实各有好处,要看具体的场景。

如果是需要增加一个类型的话,那么结构化编程就不方便了,因为在method1()和method2()里都需要加入类型判断的语句,增加一个类,需要改动N个地方(如果有N个方法的话),在这种情况下,当然是面向对象的编程方式要好很多,只需要增加一个子类就可以了

但是如果是需要增加一个方法的话,反而是面向对象的编程方法更麻烦。因为在结构化编程中,只需要增加一个method3()就可以满足需求了,只有一个地方需要改动。而在面向对象编程中,每一个子类都需要改动。

所以,并不能说面向对象一定比结构化就好,因为面向对象不是银弹,只是结构化编程思想的延伸。具体优劣,取决于具体的场景

4、Json中的元素,是JsonElement,又具体分为JsonObject、JsonArray、JsonPrimitive和JsonNull

在JAVA中,JsonObject对应于对象和Map数据结构,JsonArray对应List、Collection、Set、[]等数据结构。JsonPrimitive就是基本数据类型,包括String、int、double等,JsonNull就对应null

5、把字段和getter方法隔离确实是有好处的。这次项目中,本来有一个字段叫做name,对应的getter方法就是getName()。可是后来为了json解析方便的需要,要把name改成siteName,如果没有getter方法的话,那所有的地方都要改动,那就太糟糕了。幸好有getter方法,只需要在方法内部改成
return this.siteName;

则所有的地方都不用改。最简单的getter方法,在这个时候就显得非常有用了

6、很多开源框架,都是在一个工程里开发编译,然后对外发布jar包的时候,拆分成多个jar包发布。比如logback,发布了logback-core.jar和logback-classic.jar;spring更是这样,拆分了10多个jar包出去
  • 相关文章
发表评论
用户名: 匿名