架构师训练营第二周课后作业

发布于: 2020 年 06 月 19 日

作业一:

  • 请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?

依赖倒置原则:

1.高层模块不应该依赖于低层模块,两者都应该依赖于抽象;

2.抽象不应该依赖于细节,细节应该依赖于抽象。

因为好莱坞原则:“don't call us, we'll call you!”

作业二:

  • 请描述一个你熟悉的框架,是如何实现依赖倒置原则的。

Autofac,Autofac是IoC容器,DI框架,用来映射依赖,管理对象创建和生成周期。

注册到容器:

using Autofac;
using Autofac.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection;
namespace Samples.API
{
public class Startup
{
public virtual IServiceProvider ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
var container = new ContainerBuilder();
container.Populate(services);
return new AutofacServiceProvider(container.Build());
}
}
}

使用:

using System;
using Microsoft.AspNetCore.Http;
namespace Samples.Services
{
public class IdentityService
{
private IHttpContextAccessor _context;
public IdentityService(IHttpContextAccessor context)
{
_context = context ?? throw new ArgumentNullException(nameof(context));
}
public string GetUserIdentity()
{
return _context.HttpContext.User.FindFirst("sub").Value;
}
}
}

作业三:

  • 请用接口隔离原则优化 Cache 类的设计,画出优化后的类图

发布于: 2020 年 06 月 19 日 阅读数: 17
用户头像

赵凯

关注

还未添加个人签名 2017.12.07 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第二周课后作业