面向对象的基本原则
一、可维护性
高内聚、低耦合
高内聚,是针对一个组件(类)内部而言,如果一个组件干了好几件不相关的事情,那么组件内部就比较散,出问题是迟早的事情。中原大战之后,蒋介石表面上统一了各个军阀,实际上,他们内部之间不够内聚,一盘散沙。
低耦合,是针对多个组件之间的关系。老死不相往来,是理想国,也就没有什么矛盾,但这是不可能的。所以,尽量减少类之间的依赖。
Soc
关注分离点,我们经常说mvc模式是关注分离点的。什么意思呢?可以把mvc看成三个大的组件,每个组件都干自己的事情,model专注业务逻辑、view专注页面展示、controller专注控制,把适当的model推给适当的view
二、面向对象设计
面向接口编程
利于扩展
组合优于继承
无论是组合还是继承,都是可以扩展对象的功能。从耦合性上来讲,组合当然优于继承。适配器模式(包装器模式)有两种实现方式
隔离可能改变的部分
把经常变化的部分以抽象的方式隔离起来
SOLID原则
1、单一责任原则 (SRP)
2、开放/封闭原则(OCP)
3、里氏替换原则(LSP)
4、接口分离原则(ISP)
5、依赖反转原则(DIP)
KISS (keep it simple,stupid)
DRY (don't repeat yourself)
三、设计模式
需求和重构
按照oo原则来设计,结果并不一定是某种设计模式,但是可能非常接近某种模式,这时候,可以考虑是否使用模式
四、编写优质软件
可测试性
虚拟对象(虚拟化框架)
仿冒对象
可扩展性
基于接口的设计
插件架构(好的框架都是具有插件的架构,如Asp.net,可通过配置文件注册响应模块和处理器)
可读性
1、注释(包括命名)
2、清晰(代码结构)
3、短的更好
4、一致性
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!