少有人走的路

勇哥的工业自动化技术网站

本站视觉相关教程整理贴子,持续更新

2020年勇哥的机器视觉实验项目清单(大纲)

勇哥的免费视频教程清单

勇哥在B站发布的视频清单

桥接模式



类图:

image.png


适配器模式

作者:清泓y

链接:https://www.zhihu.com/question/573785160/answer/3111113516

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本站设计模式贴子汇总



在软件工程领域,设计模式是一套通用的可复用的解决方案,用来解决在软件设计过程中产生的通用问题。

它不是一个可以直接转换成源代码的设计,只是一套在软件系统设计过程中程序员应该遵循的最佳实践准则。

从定义可以看出,设计模式是一套语言无关的最佳设计实践准则,

勇哥谈谈策略模式(Strategy Pattern)

勇哥注:

策略模式和状态模式是两个亲兄弟,类图很像。

策略模式是封装了一系列算法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同。就像是同样是亿万富豪,马云是靠卖东西,王思聪是靠继承。

勇哥谈谈状态模式(State Pattern)

勇哥注:

状态模式(State Pattern)最简单的理解就可以用来消灭那种很长的if else,或者case。

官方说法是:当一个对象内在状态改变时允许改变其行为,这个对象看起来像是改变了其类

在类图中,分不清楚关联和依赖

抽象工厂模式与工厂模式的区别



作者:鹅厂程序小哥

链接:https://zhuanlan.zhihu.com/p/346510457

来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

一个例子演示三种类工厂模式


先来段起始源码:

需求是: 使用SQLServer数据库,对表User进行Insert和GetUser两个操作

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            SqlserverUser sql = new SqlserverUser();
            sql.Insert(new User() { ID = 1, Name = "张三" });
            sql.GetUser(1);

            Console.ReadKey();
        }
    }

    public class User
    {
        public int ID { get; set; }
        public string Name { get; set; }
    }


    public class SqlserverUser
    {
        public void Insert(User user)
        {
            Console.WriteLine("SQL Server给User表插入一条记录");
        }

        public User GetUser(int id)
        {
            Console.WriteLine("SQL Server根据ID得到User表一条记录");
            return null;
        }
    }



}

简单工厂、工厂模式的区别


文心一言的介绍能说明问题,引用如下:

简单工厂模式和工厂方法模式的主要区别如下:

结构上的区别:
在简单工厂模式中,通常只有一个工厂类来负责所有产品的创建。
而在工厂方法模式中,有一个抽象的工厂接口或抽象类,
多个具体的工厂类继承或实现这个接口或抽象类,每个具体的工厂类负责创建一种产品。

对扩展的支持:
简单工厂模式在增加新产品时需要修改工厂类的代码,这违反了开闭原则。
而工厂方法模式在增加新产品时,只需要增加新的具体产品类和对应的具体工厂类,
不需要修改原有的代码,满足了开闭原则。

依赖关系的区别:
简单工厂模式中,客户端直接依赖于工厂类。
而在工厂方法模式中,客户端依赖于抽象的工厂接口或抽象类,而不直接依赖于具体的工厂类,
这样有利于代码的解耦和扩展。
总的来说,工厂方法模式相比简单工厂模式提供了更好的扩展性和遵循了设计原则,
如开闭原则,但也需要更多的类和接口,因此在选择使用哪种模式时,需要根据实际需求进行权衡。

一个duck类的小例子,开闭原则的应用

<< < 1 2 3 4 5 6 7 > >>
«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接

Powered By Z-BlogPHP 1.7.3

Copyright www.skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864