C语言结构的替代

第19条:用类代替结构
如果一个公有类暴露了它的数据域,那么要想在将来改变该类内部数据表示是不可能得,因为公有类的客户代码已经遍布各处了。然而,如果一个类是包级私有的,或者是一个私有嵌套类,则直接暴露其数据域并没有本质的错误(该些情况没有对外公开)。(正确做法,私有域,公有的get,set方法)。

第20条:用类层次来代替联合。

第21条:用类来代替enum结构(指c里的enum)。
类型安全枚举模式:

多路分发技术:
public abstract class Operation{
private final String name;
Operation(String name){this.name=name;}
abstract double eval(double x,double y);
public static final Operation PLUS=new Operation("+"){
double eval(double x,double y){return x+y;}
}
public static final Operation PLUS=new Operation("-"){
double eval(double x,double y){return x-y;}
}
}

第22条:用类和接口来代替函数指针
c语言中函数指针的主要用途是实现strategy模式。为了在java中实现这模式,声明一个接口表示该策略,并且为每个具体策略声明一个实现了该接口的类。如果一个具体策略只被使用一次,那么通常使用匿名类来声明和实例化这个具体策略类,如果一个具体粗略需要被导出去以便重复使用,那么它的类通常是一个私有的静态成员类,并且通过一个公有静态final域被导出,其类型为该策略接口。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值