Tag: 松散耦合

如何使用SOA体系结构实现松散耦合

我最近一直在做关于SOA和ESB等的大量研究。 我现在正在努力重新设计一些遗留系统,并且希望使用比现有更多的SOA架构来构建它。 我们在大约5个网站中使用这些服务,而我们现在使用我们的遗留系统遇到的最大问题之一就是我们几乎所有的时间都在进行错误修复或更新时需要重新部署我们的5个网站,这些网站可能是非常耗时的过程。 我的目标是使服务之间的接口松散耦合,以便可以在不必重新部署所有相关服务和网站的情况下进行更改。 我需要能够扩展现有的服务接口,而不会破坏或更新任何依赖项。 你们有没有遇到过这个问题? 你是怎么解决的?

如果实现接口调用Dispose,它是否是一个漏洞抽象

考虑以下代码: public class MyClass() { public MyClass() { } public DoSomething() { using (var service = new CustomerCreditServiceClient()) { var creditLimit = service.GetCreditLimit( customer.Firstname, customer.Surname, customer.DateOfBirth); } } } 我们现在想重构它以松散地耦合它。 我们最终得到这个: public class MyClass() { private readonly ICustomerCreditService service; public MyClass(ICustomerCreditService service) { this.service= service; } public DoSomething() { var creditLimit = service.GetCreditLimit( customer.Firstname, customer.Surname, […]

构建可测试的业务层逻辑

我正在使用分层架构在.net / c#/ Entity Framework中构建应用程序。 与外界的应用程序接口是WCF服务层。 在这个图层下面,我有BL,共享库和DAL。 现在,为了使我的应用程序中的业务逻辑可测试,我试图引入关注点分离,松耦合和高内聚,以便能够在测试时注入依赖关系。 我需要一些指示,如果下面描述的方法是否足够好,或者我是否应该进一步解耦代码。 以下代码段用于使用动态linq查询数据库。 我需要使用动态linq,因为我不知道表的名称或要查询到运行时的字段。 代码首先将json参数解析为类型对象,然后使用这些参数构建查询,最后执行查询并返回结果 以下是在下面的测试中使用的GetData函数 IQueryHelper helper = new QueryHelper(Context.DatabaseContext); //1. Prepare query LinqQueryData queryData = helper.PrepareQueryData(filter); //2. Build query IQueryable query = helper.BuildQuery(queryData); //3. Execute query List dalEntities = helper.ExecuteQuery(query); 以下是DAL及其接口中查询助手类的高级定义 public interface IQueryHelper { LinqQueryData PrepareQueryData(IDataQueryFilter filter); IQueryable BuildQuery(LinqQueryData queryData); List ExecuteQuery(IQueryable query); } public […]