|
|
Duwamish7学习笔记(四) |
|
|
作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站 |
BusinessRules项目 1.Customer类 长见识了!在《Duwamish7学习笔记(三)》中还在想业务逻辑层写些什么东西。 校验,还是校验!每一行,每一列,包括类型和长度,想想自已在项目的校验,真的有点汗颜! //---------------------------------------------------------------- // Function Validate: // Validates and customer // Returns: // true if validation is successful // false if invalid fields exist // Parameters: // [in] customerRow: CustomerData to be validated // [out] customerRow: Returns customer data. If there are fields // that contain errors they are individually marked. //---------------------------------------------------------------- private bool Validate(DataRow customerRow) { bool isValid; customerRow.ClearErrors(); isValid = IsValidEmail(customerRow); isValid &= IsValidField(customerRow, CustomerData.NAME_FIELD, 40); isValid &= IsValidField(customerRow, CustomerData.ADDRESS_FIELD, 255); isValid &= IsValidField(customerRow, CustomerData.COUNTRY_FIELD, 40); isValid &= IsValidField(customerRow, CustomerData.PHONE_FIELD, 30); if ( !isValid ) { customerRow.RowError = CustomerData.INVALID_FIELDS; } return isValid; } 全部校验通过之后才调用业务访问层的相应方法进行操作,用using,使创建的Customers使用后能马上释放。 using (Customers customersAccess = new Customers()) { result = customersAccess.UpdateCustomer(customer); } 下面记录一点小知识 设置行错误:row.RowError 设置列错误:row.SetColumnError() 清除行错误:row.ClearErrors() 邮件校验的正则表达式:REGEXP_ISVALIDEMAIL = @"^\w+((-\w+)|(\.\w+))*\@\w+((\. 2.Order类 看完Order类觉得这各层的分工非常好,这层才是真正的业务如CalculateTax(),CalculateShipping(),InsertOrder(). 业务逻辑层在封装业务操作方法时,进行了非常严格的校验,使系统有非常强健的健壮性。叹为观止! 疑问:Duwamish只是MS自带的一个小例子,在实际的大的项目中有非常多的对象,非常且更复杂的业务逻辑,我们的代码还能写得于此之好吗?
|
|
相关文章:相关软件: |
|