当前位置:  技术问答>java相关

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

    来源: 互联网  发布时间:2015-03-22

    本文导语:  下面是同样功能的两种写法,不考虑执行效率,仅从面向对象角度考虑,哪种更符合面向对象规范? package instance; class InstanceEntity { private static String tablename="Workflow_Instance_Info"; private String InstanceName; private String In...

下面是同样功能的两种写法,不考虑执行效率,仅从面向对象角度考虑,哪种更符合面向对象规范?


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);
}

}


|
既然insert方法用到的参数是InstanceEntity的属性,所以你的insert(InstanceEntity entity)不如改为不带参数的更符合面向对象的原理

|

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

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

我觉得static方法只适用于定义一些常用的转换方法,不要用于这种类的常规方法中

    
 
 

您可能感兴趣的文章:

  • 面向对象能完全取代面向过程吗?
  • linux下的编程主旨思想是在面向过程还是面向对象的?谢谢!!
  • 有人问我:何为面向对象编程?我给不出确切或形象的说法。谢!vb、pb等开发工具是不是面向对象编程的语言。
  • Glib对象系统(也称为"GObject")内部是如何实现面向对象特征的呢?
  • 面向对象数据库引擎 ojadb
  • 面向对象的网络开发包 ACE
  • 面向对象数据技术 Apache OODT
  • 面向对象的API OpenStep
  • 面向对象的脚本语言 Bento
  • 面向对象的脚本语言 ObjectScript
  • 面向对象的数据库系统 EyeDB
  • 帮帮新手,jsp面向对象吗?想把c/s结构的引用用jsp改写,交互功能可以实现吗
  • 面向对象的Tcl iTcl
  • 面向对象开发环境 Cocoa
  • PHP 面向对象框架 onPHP
  • 面向对象Ajax框架 Zaxas
  • javascript的面向对象编程 JS.Class
  • 面向对象的 JavaScript 库 QuoJS
  • 面向对象的JS框架 MooTools
  • 请大家帮忙推荐几本关于操作系统、面向对象的书!
  • 建议建立一个面向开源软件组织和准备参与开源组织者的交流通道
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 面向事物(结构)的开发平台 XWorker
  • 面向组合编程框架 Qi4j
  • 面向Agent编程框架 SObjectizer
  • 面向服务的核心架构 Tuscany
  • 面向方面的框架 AspectJ
  • 面向新手的终端辅助工具 Clicompanion
  • 面向對象C語言編程框架 LW_OOPC
  • C++面向方面框架 Aspect C++
  • 面向移动终端的KISSY​瘦身版 KISSY MINI
  • 大家有谁听说过面向Linux的PlayStation平台?
  • Eclipse面向方面建模插件 A2Eclipse
  • 面向Swing的Query工具 Suery
  • 面向业务的配置平台 Utmost
  • 面向网络的数据库 Neo4j
  • Python 面向对象 成员的访问约束
  • vc,delphi&java三者之中到底谁更能支持面向对象技术?
  • java面向对象编程指南-100分奉上
  • 有人说学FLASH对学面向对像有用,真的吗?
  • HTML教程 iis7站长之家
  • 面向对象的javascript框架 modulejs


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3