<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[aifan2109的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/aifan2109</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; aifan2109]]></copyright><item><title><![CDATA[docker安装及基本命令]]></title><link>https://blog.youkuaiyun.com/aifan2109/article/details/101147938</link><guid>https://blog.youkuaiyun.com/aifan2109/article/details/101147938</guid><author>aifan2109</author><pubDate>Fri, 20 Sep 2019 22:58:00 +0800</pubDate><description><![CDATA[1.官网,打开很慢https://docs.docker.com/install/linux/docker-ce/ubuntu/
跟着一步步走 安装2.命令
docker --version
docker info

docker run hello-world docker ps 查看正在运行的容器docker ps -a 查看所有容器docker image ls 查看镜像...]]></description><category></category></item><item><title><![CDATA[sqlserver 数据库备份,还原]]></title><link>https://blog.youkuaiyun.com/aifan2109/article/details/101147936</link><guid>https://blog.youkuaiyun.com/aifan2109/article/details/101147936</guid><author>aifan2109</author><pubDate>Wed, 18 Sep 2019 23:09:00 +0800</pubDate><description><![CDATA[转载于:https://www.cnblogs.com/Spinoza/p/11546240.html]]></description><category></category></item><item><title><![CDATA[.net设计模式-责任链模式]]></title><link>https://blog.youkuaiyun.com/aifan2109/article/details/101147919</link><guid>https://blog.youkuaiyun.com/aifan2109/article/details/101147919</guid><author>aifan2109</author><pubDate>Mon, 16 Sep 2019 22:02:00 +0800</pubDate><description><![CDATA[行为型设计模式:关注对象与行为的分离
责任链模式:解决一个请求需要多个环节处理，环节还可能扩展 、变化、调整顺序等问题

下面是模拟一个审批的流程,context 是记录这一流程的上下文环境,如果按照最基本的写法为

 1 //一个请假申请
 2                 ApplyContext context = new ApplyContext()
 3   ...]]></description><category></category></item><item><title><![CDATA[.net设计模式-观察者模式]]></title><link>https://blog.youkuaiyun.com/aifan2109/article/details/101147934</link><guid>https://blog.youkuaiyun.com/aifan2109/article/details/101147934</guid><author>aifan2109</author><pubDate>Sat, 14 Sep 2019 22:09:00 +0800</pubDate><description><![CDATA[行为型设计模式:关注对象和行为的分离
观察者模式:解决一个对象里面某件事情发生后，会触发一系列其他对象的动作，然后不希望对象之间紧密依赖问题
有一个猫叫的类,它如果执行miao的方法,会有一系列的动作触发

 1 public class Cat
 2     {
 3         public void Miao()
 4         {
 5       ...]]></description><category></category></item><item><title><![CDATA[.net设计模式-模板方法]]></title><link>https://blog.youkuaiyun.com/aifan2109/article/details/101147933</link><guid>https://blog.youkuaiyun.com/aifan2109/article/details/101147933</guid><author>aifan2109</author><pubDate>Wed, 11 Sep 2019 22:19:00 +0800</pubDate><description><![CDATA[行为型设计模式:关注是对象和行为的分离
模板方法:解决一个复杂的业务处理流程中，某些步骤可能有不同的处理，把行为分开，模板里面完成通用不变的；子类覆写完成个性化逻辑
有一个模拟从银行取钱功能的类

 1 /// &lt;summary&gt;
 2     /// 银行客户端
 3     /// &lt;/summary&gt;
 4     public class C...]]></description><category></category></item><item><title><![CDATA[.net设计模式-装饰器模式]]></title><link>https://blog.youkuaiyun.com/aifan2109/article/details/101147916</link><guid>https://blog.youkuaiyun.com/aifan2109/article/details/101147916</guid><author>aifan2109</author><pubDate>Mon, 09 Sep 2019 23:18:00 +0800</pubDate><description><![CDATA[结构型设计模式:关注类与类之间的关系
装饰器模式:用组合+继承的方式对类作出扩展,可以动态为类型添加功能，甚至调整功能顺序，不修改业务类；
一个抽象类

1   public abstract class AbstractStudent
2     {
3         public int Id { get; set; }
4         public string...]]></description><category></category></item><item><title><![CDATA[.net设计模式-代理模式]]></title><link>https://blog.youkuaiyun.com/aifan2109/article/details/101147767</link><guid>https://blog.youkuaiyun.com/aifan2109/article/details/101147767</guid><author>aifan2109</author><pubDate>Sat, 07 Sep 2019 23:52:00 +0800</pubDate><description><![CDATA[1.结构型设计模式:关注类与类之间的关系
代理模式:通过代理类来访问业务类，在不修改业务类的前提下可以扩展功能；
业务接口

 1  /// &lt;summary&gt;
 2     /// 业务接口
 3     /// &lt;/summary&gt;
 4     public interface ISubject
 5     {
 6         //...]]></description><category></category></item><item><title><![CDATA[.net设计模式-适配器模式]]></title><link>https://blog.youkuaiyun.com/aifan2109/article/details/101147769</link><guid>https://blog.youkuaiyun.com/aifan2109/article/details/101147769</guid><author>aifan2109</author><pubDate>Wed, 04 Sep 2019 22:58:00 +0800</pubDate><description><![CDATA[1.结构型设计模式:关注类与类之间的交互
适配器模式:把一个类适配到原有的接口上,可以组合,可以继承
下面是一个接口和不同的实现

 1 /// &lt;summary&gt;
 2     /// 数据访问接口
 3     /// &lt;/summary&gt;
 4     public interface IHelper
 5     {
 6        ...]]></description><category></category></item><item><title><![CDATA[.net设计模式-抽象工厂]]></title><link>https://blog.youkuaiyun.com/aifan2109/article/details/101147764</link><guid>https://blog.youkuaiyun.com/aifan2109/article/details/101147764</guid><author>aifan2109</author><pubDate>Mon, 02 Sep 2019 22:51:00 +0800</pubDate><description><![CDATA[抽象工厂属于创建型设计模式,
抽象工厂能够生产一系列相对固定的产品簇产品,要扩展一个工厂相对容易,如果要扩展一个产品簇中的产品数量,就要全部的工厂都要扩展,就相对麻烦
抽象工厂：工厂+约束    /// 创建产品簇，多个对象是个整体，不可分割
抽象的工厂类

 1 /// &lt;summary&gt;
 2     /// 一个工厂负责一些产品的创建
 3     ///...]]></description><category></category></item><item><title><![CDATA[BusinessDbAccess数据访问层]]></title><link>https://blog.youkuaiyun.com/aifan2109/article/details/101147763</link><guid>https://blog.youkuaiyun.com/aifan2109/article/details/101147763</guid><author>aifan2109</author><pubDate>Sat, 31 Aug 2019 22:11:00 +0800</pubDate><description><![CDATA[1.见名知意,直接操作数据库的一层





转载于:https://www.cnblogs.com/Spinoza/p/11440725.html]]></description><category></category></item><item><title><![CDATA[MoneyFox模板解析-DataLayer]]></title><link>https://blog.youkuaiyun.com/aifan2109/article/details/101147931</link><guid>https://blog.youkuaiyun.com/aifan2109/article/details/101147931</guid><author>aifan2109</author><pubDate>Sat, 31 Aug 2019 20:58:00 +0800</pubDate><description><![CDATA[【注意】：重载OnConfiguring和之前EF版本中的OnModelCreating创建模型不一样，OnModelCreating创建模型上下文只实例化一次，但是OnConfiguring每实例化一个上下文时都会被调用一次，所以OnConfiguring能充分利用上下文中的构造函数或者其他数据。


 1  public static class DatabaseP...]]></description><category></category></item><item><title><![CDATA[.net设计模式-工厂方法]]></title><link>https://blog.youkuaiyun.com/aifan2109/article/details/101147928</link><guid>https://blog.youkuaiyun.com/aifan2109/article/details/101147928</guid><author>aifan2109</author><pubDate>Sat, 31 Aug 2019 14:05:00 +0800</pubDate><description><![CDATA[工厂方法:创建型设计模式
用于创建复杂对象,同时该对象有不断变化需要扩展的可能性时, 使用工厂方法








 1 public class HumanFactory : IFactory
 2     {
 3         public virtual IRace CreateRace()
 4         {
 5        ...]]></description><category></category></item><item><title><![CDATA[.net设计模式-简单工厂]]></title><link>https://blog.youkuaiyun.com/aifan2109/article/details/101147925</link><guid>https://blog.youkuaiyun.com/aifan2109/article/details/101147925</guid><author>aifan2109</author><pubDate>Thu, 29 Aug 2019 23:04:00 +0800</pubDate><description><![CDATA[简单工厂设计模式:创建型设计模式
将对象的创建交给其它类,自己只关注抽象
1.根据不同的传入参数创建不同的实现对象

 1 public static IRace CreateRace(RaceType raceType)
 2         {
 3             IRace iRace = null;
 4             switch (raceT...]]></description><category></category></item><item><title><![CDATA[.net设计模式-原型模式]]></title><link>https://blog.youkuaiyun.com/aifan2109/article/details/101147913</link><guid>https://blog.youkuaiyun.com/aifan2109/article/details/101147913</guid><author>aifan2109</author><pubDate>Tue, 27 Aug 2019 22:44:00 +0800</pubDate><description><![CDATA[原型模式是创建型设计模式
原理是克隆一个对象:克隆对象不会走构造函数,速度更快

与单例模式不同的是,单例模式获得的同一个对象,原型模式获得是一个新的对象,如下图

在prototype类中添加引用类型的方法

再改变引用类的属性试试:改变student1的属性class中的属性,看看student2的属性的class的变化

结果student2的class属性也随...]]></description><category></category></item><item><title><![CDATA[.net设计模式-单例模式]]></title><link>https://blog.youkuaiyun.com/aifan2109/article/details/101147911</link><guid>https://blog.youkuaiyun.com/aifan2109/article/details/101147911</guid><author>aifan2109</author><pubDate>Sun, 25 Aug 2019 22:32:00 +0800</pubDate><description><![CDATA[单例模式属于创建型设计模式
1.某个进程中,一个类只有一个实例,单例使类的实例复用,减少资源浪费,更快获取资源
单例的条件:(1)构造函数私有化
(2)公开的静态方法提供对象的实例
2.懒汉式

 1   /// &lt;summary&gt;
 2         /// 3 全局唯一静态  重用这个变量
 3         /// &lt;/summary&gt;...]]></description><category></category></item><item><title><![CDATA[identityServer4 implicitFlow]]></title><link>https://blog.youkuaiyun.com/aifan2109/article/details/101147908</link><guid>https://blog.youkuaiyun.com/aifan2109/article/details/101147908</guid><author>aifan2109</author><pubDate>Wed, 21 Aug 2019 22:19:00 +0800</pubDate><description><![CDATA[是根据杨旭大神的视频抄的








//向授权服务器添加client配置

 1 new Client
 2                 {
 3                     ClientId = "angular-client",
 4                     ClientName =  "Angular SP...]]></description><category></category></item><item><title><![CDATA[identityServer4 Password]]></title><link>https://blog.youkuaiyun.com/aifan2109/article/details/101147923</link><guid>https://blog.youkuaiyun.com/aifan2109/article/details/101147923</guid><author>aifan2109</author><pubDate>Mon, 12 Aug 2019 22:26:00 +0800</pubDate><description><![CDATA[1.用户直接在客户端输入用户名,密码
用户资源所有者和客户端高度信任的情况






转载于:https://www.cnblogs.com/Spinoza/p/11343036.html]]></description><category></category></item><item><title><![CDATA[identityServer4 AuthorizationCode Flow]]></title><link>https://blog.youkuaiyun.com/aifan2109/article/details/101147906</link><guid>https://blog.youkuaiyun.com/aifan2109/article/details/101147906</guid><author>aifan2109</author><pubDate>Tue, 11 Jun 2019 23:22:00 +0800</pubDate><description><![CDATA[1.mvc Client配置
(1)Startup

 1 JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear();
 2 
 3             services.AddAuthentication(options =&gt;
 4                 {
 5               ...]]></description><category></category></item><item><title><![CDATA[sqlserver 事务]]></title><link>https://blog.youkuaiyun.com/aifan2109/article/details/101147904</link><guid>https://blog.youkuaiyun.com/aifan2109/article/details/101147904</guid><author>aifan2109</author><pubDate>Tue, 11 Jun 2019 14:25:00 +0800</pubDate><description><![CDATA[1.https://blog.youkuaiyun.com/muzili12a3/article/details/54782391 这篇文章挺好的
2.https://www.cnblogs.com/CreateMyself/archive/2017/01/28/6352167.html

转载于:https://www.cnblogs.com/Spinoza/p/11003430.html...]]></description><category></category></item><item><title><![CDATA[.net设计模式 里氏替换原则]]></title><link>https://blog.youkuaiyun.com/aifan2109/article/details/101147920</link><guid>https://blog.youkuaiyun.com/aifan2109/article/details/101147920</guid><author>aifan2109</author><pubDate>Mon, 10 Jun 2019 23:13:00 +0800</pubDate><description><![CDATA[1 /// &lt;summary&gt;
 2     /// 里氏替换原则：任何使用基类的地方，都可以透明的使用其子类；继承+不改变行为
 3     /// 继承、多态
 4     /// 继承：通过继承，子类拥有父类的一切属性和行为，任何父类出现的地方，都可以用子类来代替
 5     /// 1 子类必须完全实现父类有的方法,如果子类没有父类的某项东西，就断掉继...]]></description><category></category></item></channel></rss>