
C# 设计模式
文章平均质量分 81
设计模式
熊思宇
游戏程序员的进阶之旅,不断探索、创新,始终坚持对技术的热爱与执着
展开
-
C# 适配器模式
适配器模式(Adapter Pattern)是一种结构型设计模式,它的主要目的是将一个类的接口转换成客户端所期待的另一种接口形式,从而使由于接口不兼容而不能一起工作的类可以一起工作。简言之,适配器模式就是提供了一个中间层,让原本接口不兼容的类可以协同工作。这种模式的应用场景非常广泛,比如在软件开发中,当需要使用一个已有的类,但是其接口不符合当前系统的需求时,就可以通过适配器模式来进行接口的适配,使得该类可以在不修改原有代码的情况下,满足当前系统的要求。原创 2024-09-24 17:25:47 · 1192 阅读 · 0 评论 -
C# 依赖注入
依赖注入是一种软件设计模式,它旨在减少代码间的耦合度,提高模块的可重用性、可测试性和灵活性。在依赖注入中,一个对象(通常称为客户端)不直接创建它所依赖的另一个对象(称为服务),而是由外部实体(如框架、容器等)负责创建并注入这些依赖。这样,客户端对象就无需关心依赖对象的创建和管理细节,只需关注如何使用这些依赖来执行其功能。依赖注入的核心思想在于“控制反转”。在传统的程序设计中,程序的控制流(包括对象的创建和生命周期管理)通常是由程序本身来控制的。原创 2024-09-24 11:33:58 · 1365 阅读 · 0 评论 -
C# 工厂模式
工厂模式(Factory Pattern)是一种创建型设计模式,它提供了一种创建对象的最佳方式。在C#中,工厂模式通过定义一个公共接口或抽象类来创建对象,而具体的对象创建则由工厂类来实现。工厂模式主要包含三个角色:1. 抽象产品(Abstract Product):定义了产品的接口,具体产品需要实现这个接口。2. 具体产品(Concrete Product):实现了抽象产品接口的具体类。3. 工厂(Factory):负责创建具体产品的工厂类,通常包含一个创建产品的方法。原创 2023-08-23 15:59:50 · 3227 阅读 · 0 评论 -
C# 观察者模式
在C#中,观察者模式通过定义一种一对多的依赖关系,使得当一个对象的状态发生变化时,所有依赖于它的对象都会得到通知并自动更新。4. ConcreteObserver(具体观察者):具体的观察者,它继承或实现了观察者接口,并实现了更新方法。当接收到被观察者的通知时,它会执行相应的逻辑。3. ConcreteSubject(具体主题):具体的被观察者,它继承或实现了主题接口,并实现了具体的业务逻辑。1. Subject(主题):被观察者,它维护了一个观察者列表,并提供了添加、删除和通知观察者的方法。原创 2023-08-19 11:51:16 · 3187 阅读 · 2 评论 -
C# 外观模式
外观模式(Facade Pattern)是一种结构型设计模式,它提供了一个统一的接口,用于访问子系统中的一组接口。外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式是迪米特法则的一种具体实现,通过引入一个新的外观角色可以降低原有系统的复杂度,同时降低客户类与子系统的耦合度。1 外观类(Facade):在外观角色中可以知道相关的(一个或者多个)子系统的功能和责任;2 子系统类集合(SubSystem Classes):子系统类集合实现了子系统的功能,处理外观类对象指派的任务。原创 2023-08-01 16:50:07 · 1239 阅读 · 2 评论 -
C# 单例模式
单例模式是很多程序员学习设计模式的第一个设计模式,主要是平时工作中会用到,另一个在23个设计模式中算比较简单一个,从字面意思上理解为一个类只有一个实例,并对外开放一个静态的访问属性,所以一般称之为单例模式。在各种单例模式版本中,总结又以下共同点:1.唯一的、私有的且无参的构造函数,这样不允许外部类进行实例化;2.类是密封的,尽管这不是强制的,但是严格来讲从上一点来看密封类能有助于JIT的优化;3.一个静态变量应该指向类的唯一实例;原创 2023-03-18 16:07:53 · 3388 阅读 · 0 评论 -
C# 状态模式
当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类状态模式效果:1>、状态模式的本质是将条件语句的各个分支封装起来,从而实现了状态逻辑与动作的分离。当分支很多时,状态模式可以给代码的维护带来很大的便利。2>、多态性的实现。3>、状态转换的显示化。状态模式将状态的切换逻辑存放到状态对象中,可以实现状态的自动切换,使各个状态界限分明,相互独立。4>、采用分支结构时,Context 对象需要关心所有状态的切换逻辑,当分支越来越多时,复杂度也会越来越大。原创 2023-03-23 14:28:41 · 1310 阅读 · 0 评论