C#知识|设计模式的分类及认识

继承是为了解决代码复用问题和子类扩展问题;控件二次开发中经常用到;

接口解决扩展和团队协作问题,实现多态和项目框架设计;

继承+接口:可以相互弥补不足,接口弥补了继承不能多重继承的问题,同时也实现灵活扩展;

02 设计模式

设计模式是针对软件设计中常见问题的总结,

也就是前人的解决方法,设计模式时各种技术的综合应用;

面向对象解决的问题是整个项目的设计思想,即要基于对象思考,使用抽象设计,要做到一切以对象为重;

设计模式解决的问题:是项目开发中某些环节的扩展问题,是对面向对象编程设计思想的补充;

03 设计模式分类

根据目的可以分为以下几类

3.1、创建型设计模式

①研究问题:研究对象的创建问题,即将对象的创建和应用分离,从而达到解耦的目的;

②主要模式:简单工厂、抽象工厂、单利模式、建造者模式、原型模式等等;

简单工厂:解决了一个对象的创建问题,多个取其一;

抽象工厂:解决多个对象的创建问题,多组取一组;

单利模式:解决同一对象的创建问题,始终就一个对象

3.2、结构性设计模式

①研究内容:对象的组合问题,即对象按照某种方式组合,便于更好的扩展功能;

②主要模式:代理模式,适配器模式、桥接、装饰器模式

3.3、行为型设计模式

①研究的问题:研究对象如何交互分配职责,即对象如何相互协作共同完成单个对象无法完成的任务;

②主要模式:模板模式、责任链模式、命令模式、中介者模式、观察者模式

04 后记

现如今这个时代,AI的发展日新月异,每天都有层出不穷的产品出来,在这样的环境下,再想着一个工作一个职业能干一辈子已经是不可能的事了。

别说现在的工作岗位,现在所在的行业说不定哪天就突然消失了。

在这个快速变化的时代,拥抱变化,保持学习变得越来越重要。

相关推荐
程序猿追2 小时前
kotlin-retry 接入鸿蒙后,怎样确认它真的会停止重试
开发语言·kotlin·harmonyos
我是人✓2 小时前
Java文件上传三方式对比:从传统到SpringBoot
java·开发语言
智能直播2 小时前
网络RTMP拉流不卡顿、声音不同步,一文讲透缓冲区、时间戳
开发语言·ffmpeg·php·音视频·视频编解码
墨云安全3 小时前
内网资产无法暴露到公网,怎么做安全检测?2026 年内网渗透测试的落地路径
开发语言·安全·网络安全·渗透测试·php
摇滚侠3 小时前
《计算机是如何工作的:人人都能懂的计算机软硬件工作原理》第 9 章 机器码与汇编语言 阅读笔记 9
java·开发语言·笔记
Cc.Y3 小时前
Java零基础入门:深入Java核心:文件IO与序列化全解
java·开发语言·python
jimy15 小时前
c++的 Type Traits (一)
开发语言·c++
Web极客码5 小时前
Python Ollama 本地 Agent 入门与订单查询实践
开发语言·jvm·python
kimnoic6 小时前
PHP 8.2的DNF类型怎么用才规范
开发语言·php
_Evan_Yao6 小时前
前后端联调怎么排查问题?从 Network 到后端日志,一步步定位错误
开发语言·后端·团队开发·需求分析