编写高效优雅安全Java程序的常见原则

编写高效优雅安全Java程序的常见原则

 

 

 

面向对象

  1. 构造器参数太多怎么办?
  2. 不需要实例化的类应该构造器私有
  3. 不要创建不必要的对象
  4. 避免使用终结方法
  5. 使类和成员的可访问性最小化
  6. 使可变性最小化
  7. 优先使用复合
  8. 接口优于抽象类

 

 

方法

  1. 可变参数要谨慎使用
  2. 返回零长度的数组或集合,不要返回null
  3. 优先使用标准的异常
  4. 通用程序设计
  5.  用枚举代替int 常量
  6. 将局部变量的作用域最小化
  7. 精确计算,避免使用float double
  8. 当心字符串连接的性能

 

构造器参数太多怎么办?

 

面向对象

用builder模式,用在

1、5个或者5个以上的成员变量

2、参数不多,但是在未来,参数会增加

 

Builder模式:

属于对象的创建模式,一般有

1、        抽象建造者:一般来说是个接口,包含

1)建造方法,建造部件的方法(不止一个),

2)返回产品的方法

2、        具体建造者

3、        导演者,调用具体的建造者,创建产品对象

4、        产品,需要建造的复杂对象

对于客户端,创建导演者和具体建造者,并把具体建造者交给导演者,然后由客户端通知导演者操纵建造者进行产品的创建。

在实际的应用过程中,有时会省略抽象建造者和导演者。

 

不需要实例化的类应该构造器私有

如,一些工具类提供的都是静态方法,这些类是不应该提供具体的实例的。可以参考JDK中的Arrays。

 

 

不要创建不必要的对象

 

1、        避免无意中创建的对象,如自动装箱

2、        可以在类的多个实例之间重用的成员变量,尽量使用static。

 

但是,要记住,是不要创建不必要的对象,而不是不要创建对象。

对象池要谨慎使用,除非创建的对象是非常昂贵的操作,如数据库的连接,巨型对象等等。

 

避免使用终结方法

finalizer方法,jdk不能保证何时执行,也不能保证一定会执行。如果有确实要释放的资源应该用try/finally。

使类和成员的可访问性最小化

编写程序和设计架构,最重要的目标之一就是模块之间的解耦。使类和成员的可访问性最小化无疑是有效的途径之一。

使可变性最小化

尽量使类不可变,不可变的类比可变的类更加易于设计、实现和使用,而且更不容易出错,更安全。

常用的手段:

不提供任何可以修改对象状态的方法;

使所有的域都是final的。

使所有的域都是私有的。

使用写时复制机制。带来的问题:会导致系统产生大量的对象,而且性能有一定的影响,需要在使用过程中小心权衡。

 

复合优先于继承

继承容易破坏封装性,而且会使子类的实现依赖于父类。

复合则是在类中增加一个私有域,引用类的一个实例,这样的话就避免了依赖类的具体实现。

只有在子类确实是父类的一个子类型时,才比较适合用继承。

接口优于抽象类

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值