为什么JAVA中一些类用另的一个类的对象来调用?

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegxDemo03 {
public static void main(String[] args) {
String str = "a-753933" ;
String pat ="[abc]-\\d{6}";
Pattern p = Pattern.compile(pat);
Matcher m = p.matcher(str); //验证字符串是否合法
if(m.matches()){
System.out.println("格式合格");
}else{
System.out.println("格式不合格");
}

}
}
感觉有点奇怪,这是一种什么逻辑?直接用一个类来实现不就可以了。具体的像
Pattern p = Pattern.compile(pat);
Matcher m = p.matcher(str); //验证字符串是否合法
还有其他一些类,像操作数据库的类也是这样的。

你已经开始思考设计的问题了,这样很好。
一个类它封装了一个功能的实现细节,然后提供给别的类调用的接口。所以一个类只专注于实现一个功能,多个类互相合作来达成目的。
这样分开的好处是类在编写的时候就可以只考虑自己的功能的实现,这样可以让整个代码变得简单。如果所有的代码都放在一个类里面,这个类就会很复杂,太复杂就不容易开发,也不容易修改,容易出bug. 就好比一个公司,前台的就管前台,扫地的就管扫地,写代码的就管写代码,自己专注于自己的,然后互相合作。
类的封装可是一个很深的学问,概念似乎不难,但是实践起来有一定的操作性。你如果已经开始思考了的话,可以多研究研究,推荐你看看“代码大全”这本书。
这本书教你写出更加优雅,灵活,高质量的代码。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-10-30
简单的说,这属于面向对象变成的范畴了。一般的新手程序员会直接在自己要用的方法中直接的写实现的代码,即使是同样作用的代码也会写很多次,造成代码的重复使用性和可维护性降到最低。以为后面如果有一个地方出现错误,要修改的地方就很多了。而楼主说的这种方法属于封装,就是把一些常用的方法封装起来,让其他通用使用该功能的地方一起调用。
这样解决了多个问题:1.数据逻辑的安全性,除非去看这个方法,不然不知道实现原理,用在一些安全要求比较高 或者需要封装的地方。2.可重用性,可以多个地方调用同一个方法,不用每个地方都累赘的去写同样的代码。3.可维护性,只要修改一个地方,就可以解决所有调用上遇到的问题。这样写有助于写出高质量的代码。
只有会使用封装和面向对象开发的程序员,才算是入门了。
第2个回答  2014-10-30
Matcher m = p.matcher(str);
那只是返回的结果的而已
就像你写了一个计算的类,调用计算的方法,返回也是一个整数型,或者其他的类一样
相似回答