设计模式第一天
- 活字印刷,面向对象。
- 面向对象的好处。 通过 封装、继承、多态降低程序耦合度,提升 可维护性, 可复用性,可扩展性,灵活性。
- 关于 复制代码 和 复用代码。 复用代码需要使用封装特性 抽离类 提升复用性。
- 简单工厂模式:
- 客户端不处理是使用哪个实例化类进行使用,只提供判断条件 交由工厂类依据判断条件实例化不同的对象。
- 传入不同的实现类获取不同的实现方式,有利用到了面向对象 多态 的特性。
- 面向对象编程,并不是类越多越好,类的划分是为了封装,分类的基础是抽象。具有相同属性和功能的对象的抽象集合才是类。
- 策略模式:策略模式定义了算法家族,分别封装起来,让他们之间可以互相替代,此类模式让算法的改变不会影响到使用算法的客户。
- 策略模式 + 简单工厂模式。
- 策略模式封装了变化,只要在分析过程中需要在不同时间应用不同的业务规则,就可以考虑使用策略模式处理。选择具体实现的职责由客户端对象承担并转给策略模式的 Context 对象。
- 单一职责原则:就一个类而言,应该仅有一个引起它变化的原因,单一的职责或许是更好的选择。
- 一个类承担的职责过多就等于把这些职责耦合在一起。
- 开放-封闭原则:软件实体应该可以扩展,但是不能够修改。写好的类尽量不要去修改,当新需求来是,通过添加一些类就完事了,原来的代码能不动则不动。
- 拒绝不成熟的抽象和抽象本身一样重要,
- 依赖倒转原则:抽象不应该依赖实现,实现应该依赖抽象。 即面向接口编程而不是面向实现编程。
- 高层模块不应该依赖低层模块。两个都应该依赖抽象。 热插拔。 软件实现应该 强内聚,松耦合, 一个模块的问题,不应该影响其他模块的使用。
- 里氏代换原则: 子类必须能够替换掉他们的父类。 一个软件实体如果使用一个父类的话,那么一定可以使用其子类,而且觉察不出父类对象和子类对象的区别。
- 只有当子类可以替换掉父类,软件单位的功能不会受到影响的时候,父类才能真正的被复用,而子类也能够在父类的基础上增加新的行为。
欺骗自己最简单,欺骗自己最困难。
安慰自己最简单,安慰自己最困难。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】