ITOO---誊写接口
目录
一,什么是接口...
二,为什么用接口?.
三, ITOO项目中实例:
1,Service层..
2,B层...
小结:
定义:接口,通俗的说就是一种约定,双方共同达成的一种共识,约定一个规则.也就是
说,接口就是个规范.
接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操
作分离出外部沟通方法,使其能被修改内部而不影响外界其他实体与其交互的方式。
生活中常用的USB接口,
1,接口在开发过程中可以快速分离工作内容。
比如调用者在写业务逻辑的时候需要一个功能,可能是数据库访问,或者复杂计算,
但是他的工作专注于实现业务逻辑,不想分开精力去做底层实现,那么他只需要先实现
一个接口,定义了规范,然后就可以继续他的业务逻辑代码了。
2,实现者可以根据这个接口规范,做具体的实现。
这样通过使用接口就可以快速的分离工作内容,达到团队并行工作的目的。
3,如果规范是通过接口定义的,那么当你这个功能有多个实现时,你只要实现了
这个接口,那么可以快速的替换具体实现,做到代码层面的完全可以分离。
总结起来就一句话:接口或者规范可以在开发过程中做到分离。
软件开发中很重要的一个理念就是“解耦”,接口和接口实现就是在干这件事.
1,Service层,BasicOrganizationWCFService.cs(service WCF)
<span style="font-size:18px;">#region根据学院名称,返回学院和专业ID+学院和专业Code--何新生+2016-1-22 10:19:48 ///<summary> ///根据学院名称,返回学院ID ///</summary> ///<paramname="CollegeName">学院专业名称</param> ///<returns></returns> publicList<BasicOrganizationViewModel>QueryCollegeIDByCollegeName(stringCollegeName) { List<ViewModel.BasicOrganizationViewModel>listOrganization=basicOrganiztionBll.QueryCollegeIDByCollegeName(CollegeName); returnlistOrganization; } #endregion </span>
IBasicOrganizationService.cs(service接口层)
<span style="font-size:18px;">[ServiceContract] //服务契约 #region根据学院名称,返回学院和专业ID+学院和专业Code--何新生+2016-1-22 10:19:48 ///<summary> ///根据学院名称,返回学院ID ///</summary> ///<paramname="CollegeName">学院名称</param> ///<returns></returns> [OperationContract] //公开服务 List<BasicOrganizationViewModel>QueryCollegeIDByCollegeName(stringCollegeName); #endregion</span>
2,B层: IBasicOrganizationBll.cs(B层中的接口层)
<span style="font-size:18px;">#region根据学院名称,返回学院和专业ID+学院和专业Code--何新生+2016-1-22 10:19:48 ///<summary> ///根据学院名称,返回学院ID ///</summary> ///<paramname="CollegeName">学校名称</param> ///<returns></returns> List<ViewModel.BasicOrganizationViewModel>QueryCollegeIDByCollegeName(stringCollegeName); #endregion</span>
BasicOrganizationBll.cs (B层中的实现层)
#region根据学院名称,返回学院和专业ID+学院和专业Code--何新生+2016-1-22 10:19:48 publicList<ViewModel.BasicOrganizationViewModel>QueryCollegeIDByCollegeName(stringCollegeName) { //定义一个新的list List<BasicOrganizationViewModel>list1=newList<BasicOrganizationViewModel>(); //调用D层方法 list1=this.CurrentDal.LoadItems(s=>s.OrganizationName==CollegeName&&s.IsEnabled==1).Select(s=>newBasicOrganizationViewModel() { OrganizationID=s.OrganizationID, SchoolLevelID=s.SchoolLevelID,OrganizationCode=s.OrganizationCode}).ToList(); returnlist1; } #endregion
1,小故事
如你去公司面试,一般都会对学历有要求,比如大学本科、硕士研究生等。
“对学历有要求”,这就好比是程序的接口。因为公司招聘是有规章制度的,因此需要
有这么一个进人的规范。
其中对“学历要求”具体不同的内容,这就是接口的实现。比如HR要求人力资源或
行政相关专业,Java开发工程师可能要求计算机相关专业。高级行政管理人员可能要求
MBA学历等等。简单来说,就是不同部门、不同岗位对学历的定义(或者说具体实现)
是不同的。
2,怎么写接口;
要接口就是: 根据什么要什么. 比如上面的例子, 根据"学院名称"查询"学院的ID,学院
Code和学院的层次".最终在B层实现.其他要的就直接在服务端调用就行了.
总结接口就是为了更好的达到高内聚,低耦合.