文章标题

Java面向对象编程(低耦合,高类聚)

最近在学习java编程思想,学到了一些比较好的编程思想,也发现了自己以前写的代码不太符合java面向对象的原则。
今天介绍的是java面想对象编程的低耦合高类聚特性,我在网上看到一个面试题,题目的目的是假设我们从网上或获取到了一些格式不同的数据(xml,json,其他),我们怎么去解析它,然后大部分人觉得就通过if else直接进行判断,然后再各自的判断分支中写出解析数据的方法,例如:
if(type == “xml”){
//xml格式的解析方法
}
if(type == “json”){
//json格式的解析方法
}
if(type == “其他格式的数据”){
//对应的解析方法
}
这样写暂时的目的是达到了,但是我们想过这个问题没有,假如我们的代码发布了,过了一段时间,又新增了一种类型的数据,我们就要去找源代码修改,这样是不是特别麻烦呢,对于代码的可维护性不好,同时也违背了java面向对象的特性.加入我们采取下面的代码是不是会好一些呢?
interface Analyze{
public void analyzeData();
}
//假如是xml格式的数据
public class XmlAnalyze implements Analyze{
@Override
public void analyzeData(){
//xml格式的解析方法
}
}
//假如是json格式的数据
public class JsonAnalyze implements Analyze{
@Override
public void analyzeData(){
//json格式的解析方法
}
}
//定义一个解析数据的工具类
public class AnalyzeDataUtil{
public static analyzeDatas(Analyze analyze){
analyze.analyzeData();
}
}
这样写的话是不是感觉代码的可维护性和可读性都提升了,如果再增加一种数据格式,就直接定义一个相关的类实现Analyze这个接口就行了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值