对象的关系

原创 2004年12月29日 22:17:00

今天趁着第一个阶段编码的结束,花了点时间将几个关键对象重构了一次,现在看看,代码还是流畅多了,看来用测试驱动开发,还是比较好的,虽然看起来时间花上去了,但心里有了底,而且也给测试减少了一些工作,重构的时候不再是那么胆小了。
用DUNIT很不习惯的一点就是,不像其它的自动化测试工具那样,能够对界面进行处理,虽然写的代码与界面关系已经不大了,但有时还是免不了漏掉些事情。
把今天的流水账记一下吧
1、写代码时,发现A对象依赖于B对象,发现有几个新功能的增加使得B对象也依赖于A对象,这可真是糟透了,先是懒着在B对象中引用A对象,运行测试,通过,然后在A对象中提出了一个接口,用于让B对象来访问,这种做法是对了,但不知道别人知道我的意图没,备注又少不了得花一大段了。
2、有A,B,C三个对象,关系为
  TB = class
     .........
  end

  TC = class
     ......
  end;

  TA = class
    B: TB;
    Cs: TObjectList;         //这里存的是TC的集合,真想用一个TCs对象来处理。一是可以良好的封装,二是看起来也顺眼
  end; //先不管了,还是按照快速开发的原则,功能完成了,但进行重构吧。
3、重命名一些变量,有一些变量最初起得倒是比较好的,但后来由于新的功能的增加,就发现该变量会让人误解,花几分钟将他们一一命名还是比较值得的。 还是老规矩,先改声名,再运行,哪个报错再改哪个,这样比SEARCH还是来得保险,速度还快。
4、在MSSQL中要写一个加密的算法,查了半天,竟然发现MSSQL不支持转换成十六进制,最后发现,自己写一个的速度比查起来要快得多,没几分钟就搞定了,自己还真是懒,这可不是一个好程序员的习惯,同时还发现STR函数竟然会导致多余空格。
5、在想在MSSQL中通过OPENDATASOURCE来访问PARADOX表,可惜啊,找很长时间都没有找到解决办法,访问ACCESS是可以的,访问PARADOX,要OLEDB-》ODBC-》PARADOX,理论上是行的,为什么最后总是提示没有权限或是不存在相应的表呢,真是郁闷。
6、下午和一个同事讨论了生成HTML表格的办法,同事还真怪,一心想用这个控件,用那个控件,结果出来的东西不好操作,不好定义,还得花很长的时间来写,没办法了,只能倚老卖老了。
       我将表格分成表头,行(字段名,值),列,三个部分,分别存放在ini文件里面,然后从数据表中读数据,依次生成STRING,结果发现,这样的效果还是非常不错的,不像那种用 <table> ...<tr>..<td> </td>.</tr>.</table> 死板,无法更改表格的属性,而且还可以用到风格纸。呵,值得发场,代码是非常的简单,但还是要贴一下的。

var
  I: Integer;
  tmpStringList: TStringList;
  IniFile: TIniFile;
  tmpStr: string;
  tmpStr1: string;

  tmpCol1: string;
  tmpCol2: string;
begin
  IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'grid.ini');
  tmpStringList := TStringList.Create;
  try
    tmpStringList.Append(IniFile.ReadString('grid', 'Table_B', '<table>'));
    tmpStringList.Append(IniFile.ReadString('grid', 'Row_Title_B', '<tr>'));
    tmpStr := IniFile.ReadString('grid', 'Column_Title_B', '<td>');
    tmpStr1 := IniFile.ReadString('grid', 'Column_Title_E', '</td>');
    for I := 0 to ADoquery1.FieldCount - 1 do
    begin
      tmpStringList.Append(tmpStr + ADOQuery1.Fields[I].FieldName
                            + tmpStr1);
    end;

    tmpStringList.Append(IniFile.ReadString('grid', 'Row_Title_E', '</tr>'));

    tmpStr := IniFile.ReadString('grid', 'Row_Content_1_B', '<tr>');
    tmpStr1 := IniFile.ReadString('grid', 'Row_Content_1_E', '</tr>');

    tmpCol1 := IniFile.ReadString('grid', 'Column_Content_B', '<td>');
    tmpCol2 := IniFile.ReadString('grid', 'Column_Content_E', '</td>');

    ADOQuery1.Last;
    ADOQuery1.Prior;
    ADOQuery1.Prior; //数据太多,就显示三条吧.

    while not ADOQuery1.Eof do
    begin
      tmpStringList.Append(tmpStr);
      for I := 0 to ADoquery1.FieldCount - 1 do
      begin
        tmpStringList.Append(tmpCol1 + ADOQuery1.Fields[I].AsString
                              + tmpCol2);
      end;
      tmpStringList.Append(tmpStr1);

      ADOQuery1.Next;
    end;


    tmpStringList.Append(IniFile.ReadString('grid', 'Table_E', '</table>'));
  finally
  Memo1.Lines.Assign(tmpStringList);
    tmpStringList.Free;
    IniFile.Free;
  end;
配置文件如下
[grid]

Table_B=<Table border="0">  //在这里放风格纸,定义表格的属性还是非常不错的。
Table_E=</Table>

Row_Title_B=<tr>  //字段头的属性,就在这里定义吧,反正会读。
Row_Title_E=</tr>

Column_Title_B=<td><font color = green>
Column_Title_E=</font></td>

Row_Content_1_B=<tr>
Row_Content_1_E=</tr>
Row_Content_2_B=<td>
Row_Content_2_E=<td>
Row_Content_3_B=<td>
Row_Content_3_E=<td>

Column_Content_B=<td><font >


Column_Content_E=</font></td>

类(对象)之间的四种关系。

类(对象)之间的4种关系    a、依赖关系(Dependency)     所谓依赖就是某个对象的功能依赖于另外的某个对象,而被依赖的对象只是作为一种工具在使用,而并不持有对它的引用     ...
  • xzq1994
  • xzq1994
  • 2016年04月07日 19:44
  • 2314

类和对象之间的关系

  从日常生活中看对象 其实对象这个名次对我们来说一点也不陌生,因为我们的日常生活中。随处可见的都是对象,小到地上的一粒沙,大到中国的万里长城,埃及的金字塔,所有的东西都是对象(万物皆对象)我们之所以...
  • xjGosling
  • xjGosling
  • 2005年03月08日 15:01
  • 10447

java--------【对象之间的关系】

Java中的对象之间的关系有多种,在此之前我着实对这些只是有一点模糊的概念,知道有一次在面试中被面试官问道,才有了这些概念。那就今天借这个机会同大家分享下这个知识点,同时我也在去学习一遍。     ...
  • Toplifeww
  • Toplifeww
  • 2014年12月30日 09:30
  • 2027

面向对象编程中如何描述对象之间的关系?

谈到面向对象编程中如何选择对象之间的关系,实在是一件令人头疼的事。 对象之间的关系大致有以下几种: 1. 继承关系 举个例子:Person是一个描述所有人的类,Stude...
  • fyfhust
  • fyfhust
  • 2015年10月27日 15:35
  • 1359

java 类和对象的关系

一 1.
  • u014182962
  • u014182962
  • 2014年10月13日 11:24
  • 1541

Hibernate对象之间的三种关系

hibernate 对象的三种关系: one – to – one : 身份证人 one – to – many : 部门 员工 many-to-one :  员工部门 many-to-m...
  • yjw916622874
  • yjw916622874
  • 2012年09月22日 10:46
  • 642

Unity基本对象的关系

Debug.LogWarning Debug.Log Debug.LogError 打印三种级别的报错 update一般用于非物理运动 Fixedupdate一般用于物理运动 eidt->...
  • qq_24596875
  • qq_24596875
  • 2017年11月12日 11:26
  • 37

PostGreSQL - 对象关系数据库系统(ORDBMS)初探

PostGreSQL 是一个 对象关系数据库系统(ORDBMS),对象关系数据库?之前只听过关系关数据(SQL Server、Oracle、MySql等等),非关系型数据库(MongoDB、Couch...
  • qian_meng
  • qian_meng
  • 2015年09月18日 23:51
  • 718

java对象间的关系(依赖,关联,组合,聚合)

组合,聚合,关联,依赖 的区别 依赖与关联 依赖(Dependency ) : 含义:是类与类之间的连接,表示一个类依赖于另外一个类的定义;依赖关系仅仅描述了类与类之间的一种使用与被使用...
  • zhuyu714997369
  • zhuyu714997369
  • 2016年07月21日 16:22
  • 5803

【linux文件系统】inode索引节点/dentry目录对象/file文件对象

资料链接: Linux 内核编程之文件系统(二) 几个关系: (1)inode索引节点表示文件的信息——每个文件都有一个inode。 (2)dentry目录项表示文件名与inode的对应关...
  • u010211829
  • u010211829
  • 2013年04月26日 17:35
  • 1124
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:对象的关系
举报原因:
原因补充:

(最多只允许输入30个字)