关于面向对象的思考,请大家参与!

aistill 2002-01-18 12:06:26
下面是同样功能的两种写法,不考虑执行效率,仅从面向对象角度考虑,哪种更符合面向对象规范?


package instance;
class InstanceEntity
{
private static String tablename="Workflow_Instance_Info";

private String InstanceName;
private String InstanceType;

public InstanceEntity(){
}

public InstanceEntity(String name,String type){
this.InstanceName=name;
this.InstanceType=type;
}

public static boolean insert(InstanceEntity){
String name=InstanceEntity.InstanceName;
String type=InstanceEntity.InstanceType;

String sql="insert into " + tablename + "(name,type) values(\'" + name + "\',\'" + type + "\')";

bean = new ExecuteSQL();
return bean.execUpdateSQL(sql);
}
}

//************************************************************

package instance;

import instance.InstanceEntity;
class Instance
{

public boolean addEntity(name,type,templateid){
InstanceEntity entity = new InstanceEntity(nama,type);
InstanceEntity.insert(entity);
}

}

//
//***********************************************************
//***********************************************************
//

package instance;

class InstanceEntity
{
private static String tablename="Workflow_Instance_Info";

private String InstanceName;
private String InstanceType;

public InstanceEntity(){
}

public InstanceEntity(String name,String type){
this.InstanceName=name;
this.InstanceType=type;
}

public static boolean insert(String name,String type){

String sql="insert into " + tablename + "(name,type) values(\'" + name + "\',\'" + type + "\')";

bean = new ExecuteSQL();
return bean.execUpdateSQL(sql);
}
}

//****************************************************

package instance;

import instance.InstanceEntity;
class Instance
{

public boolean addEntity(name,type,templateid){
InstanceEntity.insert(nama,type);
}

}

...全文
131 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
landojiang 2002-01-18
  • 打赏
  • 举报
回复
你不要问我,我不知道啊!
lzasp800 2002-01-18
  • 打赏
  • 举报
回复
我觉得你的这个类本身就有问题,
InstanceEntity作为一个对象,自己insert自己的这种方法接口让人不好理解,
建议你另外创建一个管理类,用于进行于db之间的操作。。

参数的传递,个人认为第一种比较好些。。
aistill 2002-01-18
  • 打赏
  • 举报
回复
有理!有理!!
多谢jeff
多谢bookbobby

oldcat0076 2002-01-18
  • 打赏
  • 举报
回复
还有,在同一个包里是不需要import的
oldcat0076 2002-01-18
  • 打赏
  • 举报
回复
既然insert方法用到的参数是InstanceEntity的属性,所以你的insert(InstanceEntity entity)不如改为不带参数的更符合面向对象的原理
aistill 2002-01-18
  • 打赏
  • 举报
回复
请大家指点!!谢谢!
aistill 2002-01-18
  • 打赏
  • 举报
回复
to:: bookbobby(书呆) 

我这里用static方法只是为一时方便,实际上我想请大家重点考虑的是InstanceEntity的insert方法的参数:
insert(String name,String type)
insert(InstanceEntity entity)
不好意思,代码有些乱,不准确,希望你能看明白.

bookbobby 2002-01-18
  • 打赏
  • 举报
回复

oo的一个最大原则是将功能赋予最需要实现的那个类

我觉得第一种比较好,他通过产生内的实例来调用方法
第二种直接使用了static方法调用,实际上不要轻易使用static方法,因为他是随程序一起编译的,无法使用动态绑定的好处.

我觉得static方法只适用于定义一些常用的转换方法,不要用于这种类的常规方法中
aistill 2002-01-18
  • 打赏
  • 举报
回复
请大家不惜赐教啊,我现在非常需要答案!!
分是少了点,不过也是我能给的上限了!!

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧