1.考虑非功能需求,安全,性能,稳定性,易维护,易伸缩
2.框架也是在变化的
3.框架设计要求高出一般的业务功能要求
4.模式是解决问题的方法,框架通常需要组合不同的模式构成架构
c# 常用元素
1.类class
类是对象的模板,按照面向对象的观点,类是现实模型的抽象。
类跟业务模型贴近程度取决于程序设计人员对模型的理解程度。
有些类比较贴近业务模型,有些类仅仅是数据和方法的容器。
2.字段,属性
字段是属性存放数据的结果,字段通常使用属性进行包装。
3.方法,委托
方法是对象的行为,委托把方法对象化,可以把方法进行传递。
4.泛型,协变/逆变
泛型可以让类型参数化,面向抽象编程。
6.扩展方法
可以动态添加方法
7.部分类,部分方法
编译时动态合并,部分代码通过插件生成
部分方法保留抽象定义,然后手工修改,从而达到业务逻辑和自动生成
代码的完美结合。
8.特性
附加在类型上的数据属性,可以运行时动态获取。
时面向契约设计和AOP设计的基础。
9.反射
运行时动态获取类型。
常用设计模式
1.创建对象
简单工厂:使用switch case 判单创建对象的类型
委托工厂:使用参数传递创建对象的规则,工厂里面只有调用,没有判断。
2.行为模式
基于事件的观察者
3.桥接模式
扩展方法
提高性能
1.延迟创建对象
2.及时的设置对象为null
常用模式:
1.提供程序模式
使用者可以更换框架的默认实现。比如asp.net Provider
2.链式编程模式
配置参数,比如net core 的configservices
ORM 配置
链式编程符合人的思维,对编程人员友好。
3.管道模式
数据从管道的一段流入,中间进行多个环节的处理,从管道的另一端流出。
管道模式可以组合中间处理的代码。
net core 的中间件处理就是这样。
4.逻辑上下文
进入某个区域,便可以感知到逻辑上下文的存在。
比如事务处理,
5.钝化程序模式
程序执行到某个阶段,进行暂停,然后继续执行。
BPM系统使用
6.面向契约模式
面向接口
7.异步消息驱动模式