11 2022 档案
摘要:The instance of entity type 'Model' cannot be tracked because another instance with the same key value for {'Id'} is already being tracked. When attac
阅读全文
摘要:延迟任务的例子: public class WakeUpCommand : ICommand { public bool executed = false; //这里开关可以控制自己的逻辑块,但是这里暂时是个摆设 public void Execute() { Trace.WriteLine("wo
阅读全文
摘要:模板方法例子如下,还是计算器为例。 public enum Operator { Add,Sub,Mul,Div} public abstract class CalTemplate { public abstract Operator Operator { get; } public abstra
阅读全文
摘要:工厂模式应该是用的频次最高的,他管理着对对象的创建。下面简单介绍下简单工厂、工厂方法、抽象工厂。 一、简单工厂应该是其中最简单最直接明了的,一个接口、N个实现,再一组装就好了。 public interface ICalculator { decimal Calculator(params deci
阅读全文
摘要:aspnetcore上传图片也就是上传文件有两种方式,一种是通过form-data,一种是binary。 先介绍第一种form-data: 该方式需要显示指定一个IFormFile类型,该组件会动态通过打开一个windows窗口选择文件 及图片。 postman演示如上,代码如下: [HttpPos
阅读全文
摘要:所谓装饰,就是锦上添花,首先要有本体存在,而且在不破坏本体的情况下给本体添砖加瓦。 下面写个简单的例子: public abstract class BaseAction { public abstract void Action(); } 上面的本体很简单,名字也很随意,可以套个接口什么,我这里最
阅读全文
摘要:责任链模式如同aspnetcore中的管道机制,贯穿真个框架的开始和结束。很经典的有请假,写个假条找组长,主管 ,经理,boss等一层一层的去批复,当然每个领导批假的天数是具体明确的,要不然就没法传递下去,这里有两个字很关键,就是“传递”。 下面通过一个简单的计算器的例子具体说明。 public c
阅读全文
摘要:其实一个简单的计算器就足够了,但是设计模式让它变得越来越复杂了。 public interface ICalculator { decimal Invoke(params decimal[] args); } public class AddCal : ICalculator { public de
阅读全文
摘要:访问者模式有点小复杂,而且需要在实际的时候提前留好后门,下面通过简单的例子来介绍一下。场景就是邮件发送,通知客户怎么了怎么了,后面可能需要短信或者app也推。推之前或推送之后干点别的。 public abstract class BaseJob { public abstract void Exec
阅读全文
摘要:设计模式是面向对象的具体表现和实践。或许哪天感觉面向对象理解差不多了,嘴里也不用记挂着设计模式这个玩意儿,我只能通过反复学习设计模式以加深理解面向对象。 下面复习策略模式,较常用,以计算器为例,写起来就有感觉了。 第一步定义一下策略, public interface ICalculate { de
阅读全文