| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1248 人关注过本帖
标题:关于自编Java类的一个困惑
只看楼主 加入收藏
zsynew
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2009-8-5
结帖率:100%
收藏
已结贴  问题点数:2 回复次数:10 
关于自编Java类的一个困惑
我现在自学Java,刚起步,有时候自己编写一些类。但是我对于一个问题很迷惑:一个类,我究竟应该提供多少方法才合适呢?比如我写了如下一个类:
public class Minute            //calculation about time
有如下方法:
public String toString()       //override the "toString" function
public void print()            //print the information of a object
public boolean equalsTo(Minute m)//decide whether the two objects are the same
public void addMilisecond(long t)
public void addSecond(long t)
public void addMinute(long t)
public void addHour(long t)
public void addAll(long hr,long m,long s,long mili)
private void upConvert()         //change the form of a object to normal form,usful to make an object
public void printAsForm(String s) //print informations as a form
public void toMilisecond(){      //to milisecond,fundamental to means "timeInterval"
public Minute timeInterval(Minute m2){      //m2 - s
这样,这个类比较完整,而且提供了一些使用的方法。但是,有些方法却是可以用另一个方法替代,只是比较不方便。如果将这些方法去除,又使得这个类不那么简单易用了。这个平衡点如何找呢?
搜索更多相关主题的帖子: Java 困惑 
2010-11-23 19:03
elan1986
Rank: 6Rank: 6
等 级:贵宾
威 望:18
帖 子:458
专家分:407
注 册:2007-12-17
收藏
得分:0 
接口
去看看接口!
2010-11-24 10:33
风兮飞扬
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-11-24 13:49
lampeter123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
收藏
得分:0 
先写一个基类, 再用子类继承扩展这个基类

你的优秀和我的人生无关!!!!
    
    我要过的,是属于我自己的生活~~~
2010-11-24 14:58
Eline
Rank: 2
等 级:论坛游民
帖 子:18
专家分:14
注 册:2010-10-18
收藏
得分:0 
用接口实现多继承啊
2010-11-24 23:23
思忆季节
Rank: 2
来 自:珠海
等 级:论坛游民
帖 子:42
专家分:62
注 册:2010-5-12
收藏
得分:0 
应该是用接口,接口好啊,弥补了Java的单继承的弱点啊
2010-11-25 13:57
lampeter123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
收藏
得分:0 
接口就是强制你去实现某些方法

你的优秀和我的人生无关!!!!
    
    我要过的,是属于我自己的生活~~~
2010-11-25 17:30
一口三个汉堡
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:155
专家分:525
注 册:2010-3-21
收藏
得分:0 
首先你要了解什么是对象,而方法就是对象所具有的行为,你创建了一个类,那么你认为你的这个应该具有哪些行为就为他创建有多少方法,但是因为现在java的类库应经很多了,如果已经有了,你可以直接调用或者继承。没有说一定要多少个方法

坚持做对的事情,而不是容易的事情。
2010-11-25 21:31
JAVA淘宝
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-11-23
收藏
得分:0 
困惑
2010-11-26 23:22
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:2 
我的观点是这样:
要看你的类是否被广泛的使用,类上的方法是否也是非常常用的方法
假如说
public void addMilisecond(long t)
public void addSecond(long t)
public void addMinute(long t)
public void addHour(long t)
public void addAll(long hr,long m,long s,long mili)
这几种方法一般只会在一两个地方使用到,那么你就没必要放在一个类中,尤其是Model类。因为当使用的人多的时候,意味着看的人也多,此时维护代码的精简则是非常有意义的事情。再如果这个类还是一个公共类,需要发布出去给其他系统使用的,那么精简API以及将业务逻辑剥离则是更有必要的事情。

那么这些方法放在那里呢?可以考虑用Util来作。
比如说你这个类叫Time.java,那么你可以建立一个TimeUtil,然后将Time中不常用的业务方法移步到TimeUtil中来完成,这样别人在看Time的时候不会因为太繁琐的方法而疯掉。

再回到方法功能相似的问题
public void addMilisecond(long t)
public void addSecond(long t)
public void addMinute(long t)
public void addHour(long t)
这几个方法看起来都是一样的意思,就是增加时间。so,我认为此时应该判断下,程序所依赖的时间精度是多少,如果是用秒就能描述清楚的业务逻辑,那么就可以将其他几个方法都清掉。
因为addSecond(60*2)和addMinute(2)实际上是一样的,你的代码并没有精简多少。

[ 本帖最后由 神vLinux飘飘 于 2010-11-27 00:06 编辑 ]
收到的鲜花
  • lampeter1232010-11-27 12:01 送鲜花  9朵   附言:我很赞同

淘宝杜琨
2010-11-26 23:59
快速回复:关于自编Java类的一个困惑
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025151 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved