![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 71
lijingguang
这个作者很懒,什么都没留下…
展开
-
C# 工厂模式学习
接口:定义了一组必须实现的方法和属性,没有实现代码。支持多重继承,使得类可以实现多个接口。继承:用于从现有类创建新类,继承基类的成员。每个类只能有一个基类,但可以实现多个接口。结合使用:通过将接口和继承结合使用,可以实现代码的高复用性和灵活性。通过上述示例,可以看到如何使用接口和继承来设计灵活且可扩展的应用程序结构。这样既能充分利用基类的通用功能,又能通过接口实现特定的行为。原创 2024-05-31 11:13:39 · 1171 阅读 · 0 评论 -
设计模式 之 策略模式
策略模式是一种定义一系列算法的方法,以相同的方式调用不同的算法,减少了各种算法类与使用算法类之间的耦合。它的重心不是如何实现算法,而是如何组织,调用这些算法。从而让程序结构更灵活,具有更好的维护性和扩展性。还可以通过简单工厂模式来优化 组织策略上下文类 ,让客户端与算法实现类完全解耦。原创 2024-03-24 09:00:00 · 258 阅读 · 0 评论 -
设计模式 之 抽象工厂模式
设定一个场景:公司要对接两家服务商的业务,业务是相同的,但是两家服务商的接口表现形式是不同的,需要我们对其做一层封装,让它们实现我们统一的接口,以便于公司内部调用。假设业务包括会员和优惠券两个部分,首先我们需要 创建一个ErpService.Abstract项目,并为这两个业务定义两个统一的接口以及一个抽象工厂接口。为A服务商创建一个 ErpService.A的项目,创建两个类实现上面两个接口,并创建一个工厂类实现抽象工厂接口。Console.WriteLine("A服务商创建券方案");原创 2024-03-24 08:00:00 · 401 阅读 · 0 评论 -
设计模式 之 简单工厂模式+工厂模式
这样我们就用Ioc实现了一个简单工厂,上面的代码示例是将实现类的字典放在工厂中维护,其实可以将字典放到配置文件或者数据库中维护,这样我们再增加新的实现类时,就不需要在修改工厂的代码,实现了实现类的动态扩展。优点:工厂中包含了必要的逻辑判断,根据客户端的选择条件动态的创建相关的类,对于客户端来说,它只需要提供创建实现类的参数,隐藏了创建实例的细节,去除了对具体实现类的依赖。同时每增加一个实现类,也要增加一个工厂类,增加了代码复杂度。创建一个工厂类,对实现了同一个接口的多个类进行实例的创建。原创 2024-03-23 08:00:00 · 493 阅读 · 0 评论 -
设计模式:面向对象设计的六大原则
很久没有写博客了,一直给自己找借口说太忙了,过几天有空再写,几天之后又几天,时间就这么快速的消逝。说到底就是自己太懒了,不下点决心真是不行。我决定逼自己一把,从今天开始学习设计模式系列,并写成博文记录下来,做不到的话,就罚自己一个月不玩游戏 (作孽啊。。。。好了,面向对象的六大原则就介绍到这里了。其实,我们不难发现,六大原则虽说是原则,但它们并不是强制性的,更多的是建议。原创 2024-03-22 11:07:36 · 1375 阅读 · 0 评论 -
建造者模式
例如,计算机是由 CPU、主板、内存、硬盘、显卡、机箱、显示器、键盘、鼠标等部件组装而成的,采购员不可能自己去组装计算机,而是将计算机的配置要求告诉计算机销售公司,计算机销售公司安排技术人员去组装计算机,然后再交给要买计算机的采购员。使用建造者模式可以有效的封装变化,在使用建造者模式的场景中,一般产品类和建造者类是比较稳定的,因此,将主要的业务逻辑封装在指挥者类中对整体而言可以取得比较好的稳定性。也就是说,如果创建简单对象,通常都是使用工厂模式进行创建,而如果创建复杂对象,就可以考虑使用建造者模式。原创 2023-09-15 17:42:08 · 291 阅读 · 0 评论 -
单例模式优缺点
不应该滥用单例模式,而是在合适的情况下使用它。5. **单例的生命周期**:一旦创建,单例实例的生命周期通常与应用程序的生命周期相同。1. **全局唯一性**:单例模式确保在应用程序中只有一个实例,这对于某些类来说是非常有用的,例如配置管理、日志记录器、数据库连接等。5. **节省资源**:由于只有一个实例存在,单例模式可以节省系统资源,尤其是对于重量级对象或需要大量资源的对象。4. **线程安全**:在正确实现的情况下,单例模式可以确保多线程环境下只有一个实例,并提供线程安全的访问。原创 2023-09-14 19:27:44 · 927 阅读 · 0 评论 -
抽象工厂的优点和缺点
2. **不易于新增产品**:如果需要新增一种产品,抽象工厂模式的修改会比较复杂,因为需要同时修改抽象工厂接口和所有具体工厂类。1. **复杂性增加**:抽象工厂模式引入了多个抽象类和接口,以及多个具体工厂和产品类,因此可能会增加系统的复杂性。3. **易于替换和扩展**:通过添加新的具体工厂类和产品类,可以轻松扩展抽象工厂模式,而不需要修改现有的客户端代码。3. **不支持单一产品的变化**:抽象工厂模式适用于一组相关产品的创建,但如果只有一个产品发生变化,那么整个工厂都需要进行修改,可能不够灵活。原创 2023-09-14 18:18:13 · 489 阅读 · 0 评论 -
简单工厂模式 和 工厂方法 和 抽象工厂的区别
**示例**:例如,您可以有一个`PizzaStore`抽象工厂,其中包含一个工厂方法`CreatePizza()`,而具体的披萨店子类(如`NYStylePizzaStore`和`ChicagoStylePizzaStore`)实现了`CreatePizza()`方法来创建不同地区的披萨。- **目的**:抽象工厂模式的主要目的是提供一个接口,用于创建一系列相关或依赖的对象。- **结构**:简单工厂模式包含一个工厂类,该工厂类通常有一个静态方法,根据传入的参数或条件创建不同的产品对象。原创 2023-09-14 14:04:05 · 461 阅读 · 0 评论