当前位置:编程学习 > C#/ASP.NET >>

c#如何定制客户的需求

当客户说要求增加一个字段,字段己从工具中建立,如何在程序中通过对象.属性方法实现此字段的维护(增,删,改) 
问题补充:比如人员基本信息(person类)中,我己将基本的属性(name,sex,code,phone,address...)封装好了,当值在应用层传递到数据层时,在写调用数据层的方法时只需person.name,person.sex,person.phone,person.address...)
写入库中,现在客户来了一个需求,需增加一个字段(note),我该如何在person类中封装好,并在数据层用person.note方法实现库的操作,
--------------------编程问答-------------------- 4.0中可使用动态类型
添加属性 --------------------编程问答--------------------
引用楼主 zjy7711 的回复:
当客户说要求增加一个字段,字段己从工具中建立,如何在程序中通过对象.属性方法实现此字段的维护(增,删,改) 
问题补充:比如人员基本信息(person类)中,我己将基本的属性(name,sex,code,phone,address...)封装好了,当值在应用层传递到数据层时,在写调用数据层的方法时只需person.name,person.sex,person.phone,person.addre……


首先,你的所谓应用层为什么不能使用面向对象的方式来仅仅使用一个参数直接传递一个Person对象,而是分别将多个具体的属性列在多个参数上呢?

如果你的应用程序层确实没有面向对象编程的能力,只能传递一堆简单类型的数据,而不能传递一个模型对象,那么最好的做法就是重载方法,增加一个参数。例如原来是:
public static void UpdateUser(string name,bool sex,string phone){
   //这里处理这3个参数
}
现在要增加一个Address参数,就重载为:
public static void UpdateUser(string name,bool sex,string phone,string address){
   //这里处理这4个参数
}

public static void UpdateUser(string name,bool sex,string phone){
   UpdateUser(name,sex,phone,string.Empty);
}
--------------------编程问答-------------------- “工具”,要看是谁开发的工具。微软开发的工具尚且被很多人说成容易让人变得无能,更何况那些小程序员开发的?!

许多年来,我们招聘的许多刚毕业的学生都号称自己有编辑数据库表字段,并且来生成代码的所谓工具。其实这些这类工具只适合不太懂开发的业余人员省事地开发很简单、千篇一律的小程序。专业的开发,用这些小工具反而把自己的项目组变得没有什么能力了。 --------------------编程问答-------------------- 以前开发了一个系统,将所有的这种对象放入配置文件中,连用户界面也是通过配置文件自动生成的.例如用户需要添加一个属性,那么只需要在配置文件中添加一个设置. --------------------编程问答-------------------- 整个系统的界面200多个,但是代码中的界面就那么10个左右.同时结合了代码生成技术.
.net下system.codedom --------------------编程问答-------------------- 用动态类型吧
--------------------编程问答-------------------- 需求随时改变都是正常的,我觉得构架的好坏只是可以尽量让自己有扩展的余地,但是别希望做到在软件开发前期什么东西都想到,把你的软件架构足够强大到可以容纳客户的所有需求。 --------------------编程问答--------------------
引用 1 楼 wuyq11 的回复:
4.0中可使用动态类型
添加属性



具体点,谢谢! --------------------编程问答-------------------- /*固定项目封装好了*/
public Class Person()
{
  private string _address;
  private string _name;
  ....
  
  public address
  {get{return this._address;}
   set{this._address=Value;}}
  ....
}

/*如何扩展*/
public class  DBOperate
{
  public void updatePer(Person p)
  {
    string sql=string .format("update T set F1={0},F2={1}",p.name,p.adress;)
  }
}

补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,