文章标题

来源:互联网 发布:仿链家系统源码模板 编辑:程序博客网 时间:2024/06/10 04:43

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