DotNET企业架构应用实践-基于接口开发介绍以及应用场景和案例

简介: 基于接口开发介绍          基于接口编程的本质是分离对象的实现与使用者之间的关系,即变更以下对象结构的依赖变化:                这样说的好处是客户对象依赖于服务接口,即在开发过程中我们只关注于服务接口的定义,而不关注于服务对象的具体实现,客户对象只有在运行期才通过解耦与后期绑定辅助工具(类)与具体的服务实现对象动态的建议依赖。

基于接口开发介绍

         基于接口编程的本质是分离对象的实现与使用者之间的关系,即变更以下对象结构的依赖变化:

image

 

 

 

         这样说的好处是客户对象依赖于服务接口,即在开发过程中我们只关注于服务接口的定义,而不关注于服务对象的具体实现,客户对象只有在运行期才通过解耦与后期绑定辅助工具(类)与具体的服务实现对象动态的建议依赖。

         这样做的好处是很显然的,从技术上讲,如果把服务接口与服务实现分别放在不同的组件之中,那么修改了服务实现组件,我们不用重新编译客户组件,在软件工程上的带给我们的好处是,服务接口与服务组件即接口定义与实现可以相分离,可以交给不同的人去做,同时,我们可以通过这种结构实现在运行期通过动态配置以替换不同的服务组件实现。

一个应用场景及案例

         比如我们要开发一套HIS系统,需要集成医疗保险,但是不同的地区使用不同的医疗保险系统,我们的HIS必须要达到在与不配的医疗保险系统相配合,但我们不能因为应用了不同的医疗服务而变更HIS中的相关逻辑,那么我们应该怎么办呢?

         答案是采用基于接口驱动的思想,我们定义一个HIS医疗保险接口组件(HIS.Medicare.Interface),HIS系统中使用医疗保险业务的地方切调用这个接口的方法或者服务,而我们在不同的城市实施HIS的过程中,开发出各城市的医疗保险实现组件,比如HIS.Medicare.Lanzhou、HIS.Medicare.BaoTou,我们也可以弄一个空的实现HIS.Medicare.Default,即不使用医疗保险的情况,那么整个结构就如下所示:

image

 

 

         HIS系统中的HIS.Medicare.Interface消费者对一切保险业务的处理都是调用HIS.Medicare.Interface包中的业务定义组件,不关心系统运行时倒低采用那一个实现,或者没有实现或者只有一个默认的实现HIS.Mecicare.Default,或许真实运行环境的这具体实现还没有开发,实能在项目中需要才去开发,那么消费者与接口的实现是如何建立联系的呢?

实现的后期绑定

         消费者与具体的实现如何建设关系呢,方法有很多种,最常见的莫过于使用抽像工厂模式,也可以使用IOC容器进行解耦,具体如何说呢,我下面示例说明。

        比如我们在HIS.Medicare.Interface定义了一个接口IMedicareProvider

 

1       public   interface  IMedicareProvider
2      {
3          IMedicareDrugSelect CreateMedicareDrugSelect();
4 
5          IMedicareItemInfoSelect CreateMedicareItemInfoSelect();
6 
7          IMedicareServiceSelect CreateMedicareServiceSelect();
8      }

 

 

       而我们在HIS.Medicare.Lanzhou、HIS.Medicare.BaoTou和HIS.Medicare.Default中都实现了这个类,那么我们刚可以在HIS.Medicare.Interface组件中增加如下代码:

 
 
 1       public   static   class  MedicareProviderHelper
 2      {
 3           static   readonly   string  ConfigKey  =   " HIS.MedicareProvider " ;
 4           public   static  IMedicareProvider MedicareProvider
 5          {
 6               get
 7              {
 8                   return  ContextHelper.GetContext().Container.GetComponentInstance(ConfigKey)  as  IMedicareProvider;
 9              }
10          }
11      }

 

    并且需要在系统配置文件的IOC配置信息中增加如下内容:
1  < object  name ="HIS.MedicareProvider"  assembly ="HIS.Medicare.Default"  type ="HIS.Medicare.Default.MedicareProvider"  LifestyleType ="Thread"   />

 

       上面我处理我使用了AgileEAS.NET平台中的IOC组件,有关IOC的介绍请参考AgileEAS.NET平台之对象控制反转一文。这样处理以后,我们在任何使用IMedicareProvider 接口的地方直接采用MedicareProviderHelper.IMedicareProvider 的方式消费IMedicareProvider 对象。

结束语

         事实说明,基于接口开发在某些应用场景能很好的分离服务对象与消费者对象之间的依赖,在软件开发过程中不失为一种非常有效的手段,如果运用的合理,将起到事半功陪的效果,但是,基于接口开发也不是万能的,并不解决问题的唯一银弹,就比如我们传统的文件,架构或者模式的设计一切基于应用为先的原则,即怎么样的业务即采用怎么样的架构技术,不如一味的强求与照搬。合理就好。

         文未我加点广告,谢谢!

链接

一步一步教你使用AgileEAS.NET基础类库进行应用开发-系列目录

AgileEAS.NET平台开发指南-系列目录

AgileEAS.NET应用开发平台介绍-文章索引

AgileEAS.NET平台应用开发教程-案例计划

AgileEAS.NET官方网站

敏捷软件工程实验室

QQ群:116773358(AgileEAS.NET平台),9105332(系统架构交流群)

目录
相关文章
|
1月前
|
消息中间件 SQL 前端开发
如何开发人事及OA管理系统的考勤管理板块?(附架构图+流程图+代码参考)
考勤系统是企业HR管理的核心模块,涉及打卡、请假、加班、补卡等多项功能,支持多场景打卡方式,并与薪酬、绩效紧密关联。系统需具备数据自动统计、异常提醒、审批流程集成等功能,有效减少人工错误,提升管理效率。
|
1月前
|
存储 缓存 数据库
如何开发人事及OA管理系统的全局基础设置板块?(附架构图+流程图+代码参考)
在企业数字化转型中,人事管理系统(HRM)与办公自动化系统(OA)已成为核心工具。本文详解全局基础设置的三大核心模块:部门岗位基础表、工作日历和工作地点基础表,涵盖功能设计、业务流程、开发技巧与代码示例,助力企业优化系统架构,提升管理效率与扩展性。
|
1月前
|
存储 Java 数据库
如何开发人事及OA管理系统的会议管理板块?(附架构图+流程图+代码参考)
人事及OA系统是现代企业管理的重要工具,整合人力资源与办公流程,提升效率。其会议管理板块可优化会议室预约、冲突检测、审批流程及数据统计,助力企业高效协作。本文详解功能设计、开发技巧与实现方案。
|
1月前
|
JavaScript 安全 前端开发
如何开发人事及OA管理系统的薪酬管理板块?(附架构图+流程图+代码参考)
本文介绍了如何构建一个高效、合规的企业薪酬管理系统,涵盖薪酬模块的重要性、核心功能、系统架构设计、数据模型、开发实现及安全合规要点。内容包括薪酬配置、数据导入、自动化计算、审批发放、工资条生成与安全分发、报表看板、权限审计等关键环节,并提供详细的业务流程、架构图、核心代码示例及落地开发技巧。适用于HR、财务及技术人员快速搭建薪酬管理系统,提升发薪效率,降低人工错误与合规风险。
|
1月前
|
前端开发 BI API
如何开发人事及OA管理系统的入转调离板块?(附架构图+流程图+代码参考)
企业人事及OA系统核心模块“入转调离”(入职、转正、调动、离职)涵盖员工全生命周期管理,涉及审批流、合同管理、岗位变更、社保薪资联动等关键流程。通过系统化设计,实现数据统一、流程可审计、信息可追溯,提升HR效率并增强企业合规性。本文详解模块架构、设计原则、五大子模块实现方案及常见集成点,助力企业搭建高效、可靠的人事管理系统。
|
27天前
|
数据采集 缓存 前端开发
如何开发门店业绩上报管理系统中的商品数据板块?(附架构图+流程图+代码参考)
本文深入讲解门店业绩上报系统中商品数据板块的设计与实现,涵盖商品类别、信息、档案等内容,详细阐述技术架构、业务流程、数据库设计及开发技巧,并提供完整代码示例,助力企业构建稳定、可扩展的商品数据系统。
|
29天前
|
JSON 前端开发 JavaScript
如何开发一套EHS健康安全环境管理系统中的健康管理板块?(附架构图+流程图+代码参考)
本文深入探讨了企业EHS(环境、健康与安全)系统中的核心模块——健康管理。文章指出,企业健康管理不仅是合规要求,更是提升生产效率、降低事故率和用工成本的关键。通过构建系统化、数据化的健康管理模块,企业可以实现体检、档案、劳保用品管理、异常预警和统计看板的闭环管理。特别适用于中大型企业,文章提供了从系统架构设计、数据库建模、后端与前端实现到部署运维的完整解决方案,并附有可落地的代码示例和技术选型建议。此外,还涵盖了开发技巧、权限控制、数据隐私、接口设计等工程化实践,以及系统扩展和第三方集成的思路,为企业打造高效、合规、可持续优化的EHS健康管理体系提供了全面指导。
|
1月前
|
存储 消息中间件 数据库
如何开发人事及OA管理系统的其他SSC板块?(附架构图+流程图+代码参考)
本文介绍了人事及OA管理系统中“其他SSC板块”的开发与实现,涵盖公告发文、公司资质文件管理、名片印制申请、用印申请、开具证明申请等功能模块。内容包括各模块的功能需求、业务流程、开发技巧及代码参考,帮助企业提升行政管理效率,优化信息流通,增强信息安全。适合企业管理人员及系统开发人员阅读参考。
|
1月前
|
存储 安全 前端开发
如何开发一套EHS 健康安全环境管理系统?(附架构图+流程图+代码参考)
本文介绍如何开发一套完整的EHS(健康、安全和环境)管理系统,涵盖系统核心模块、技术架构、数据库设计、前后端开发示例及上线建议,帮助企业提升安全管理效率与合规性。

热门文章

最新文章