[置顶]python知识导航贴,持续更新

[置顶]C# 语言高级特性知识导航贴,持续更新

[置顶]netMarketing类库: 类库说明

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

[置顶]C++相关导航贴,持续更新

[置顶]本站收费服务公告(netMarketing源码,工业自动化行业培训班等)

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

[置顶]本站连载贴子系列,持续更新中……

[置顶]勇哥的免费视频教程清单

[置顶]勇哥在B站发布的视频清单

[置顶]运动控制专题,持续更新

售货机项目--应用控制反转的实战

勇哥注:此为转贴,载于:https://zhuanlan.zhihu.com/p/133872816 这个某位软件经理的项目实践,放这里让诸君共勉。控制反转和依赖反转是软件框架里面常见的设计方法,说起来容易,但使用起来很难,其根本原因在于场景的难识别。本文根据实际项目中的落地经验来谈一谈控制反转和依赖反转的相关技术。重构背景去年10月上旬,公司正式立项智能售货机(地铁站卖水的自助售卖机)项目,我被...

用一句话白话一下7大设计原则

在面向对象编程中,SOLID 是五个设计原则的首字母缩写,旨在使软件设计更易于理解、灵活和可维护。这些原则是由美国软件工程师和讲师罗伯特·C·马丁(Robert Cecil Martin)提出的许多原则的子集,在他2000年的论文《设计原则与设计模式》中首次提出。SOLID 原则包含:S:单一职责原则(single-responsibility principle)一个类或者模块只负责完成一个职责...

聊聊开放封闭原则 (Open/Closed Principle)

勇哥注:此文章为引用。勇哥在这里只是编写了C#的演示代码,供大家玩读。最近技术组同事分享了关于 JavaScript 时间循环和任务队列的机制,涉及了异步编程方面的内容,包括定时器、Promise、async/await,于是打算借机会巩固一下这部分知识。随手翻了几篇文章,其中一篇在说到异步编程中回调函数时,提到了 IoC(控制反转)、DI(依赖注入)等设计思想,干脆,把这几个名词弄清楚,于是顺藤...

开闭原则,来自生活与编程等各方面的例子

勇哥注:这节勇哥拿开闭原则,发散思考一下。。。。先提一下面向对向编程中开闭原则的概念:软件实体(类、模块、函数等)应该可以扩展,但是不可以修改。弹性工作时间制度在弹性工作时间制度中,规定每天工作8小时是“关闭”的,即这个规定是不变的。 但是,员工什么时候开始工作,什么时候结束工作则是“开放”的, 可以根据实际情况进行调整。 例如在勇哥的公司,项目经理的打卡就是弹性的,一个月不限补卡次数。...

勇哥谈下迪米特法则

勇哥注:迪米特法则是1987年秋天由lan holland在美国东北大学一个叫做迪米特的项目设计提出的, 它要求一个对象应该对其他对象有最少的了解,所以迪米特法则又叫做最少知识原则迪米特法则包含前后两个部分,如果我们把一个模块看作是一个人,那么要实现“一个人应该对其他人有最少的了解”,应该做到这两点:1、只和直接的朋友交流;2、减少对朋友的了解。接下来就详细说说如何做到这两点。首先,我们来看一下...

控制反转思想,来自生活与编程等各方面的例子

勇哥注:控制反转思想,无论是编程还是生活中,都会有大量的应用。发散思考一下其乐无穷。。。。先提一下几个专业名词:依赖倒置原则(DIP):一种软件架构设计的原则,是一种抽象概念。 (DIP缩写是指 Dependency inversion principle)控制反转(IoC):一种设计模式,是DIP的具体实现方式。(IoC缩写是指 inversion of control)依赖注入(...

控制反转容器&依赖注入模式的阅读笔记

勇哥注:主要是阅读时的代码由java转为C#。(一)简单示例using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication7...

控制反转容器&依赖注入模式

控制反转容器&依赖注入模式Inversion of Control Containers and the Dependency Injection pattern作者:Martin Fowler翻译:坚强2002&源文档 http://www.martinfowler.com/articles/injection.html 轻量级容器在Java社区近来可是风起云涌,这些容器能将来自...

载自知乎一篇非常好的介绍依赖倒置原则的文章

勇哥注:本文为引用,但是勇哥穿插编写了C# 版的演示代码。作者:Mingqi链接:https://www.zhihu.com/question/23277575/answer/169698662要了解控制反转( Inversion of Control ), 我觉得有必要先了解软件设计的一个重要思想:依赖倒置原则(Dependency Inversion Principle )。什么是依赖倒置原则...

问题:Spring IoC有什么好处呢?(知乎贴子文摘)

知乎问题:Spring IoC有什么好处呢?比如这个例子: B{ A a=new Aimpl(); //其他代码 } B{ A a; //其他代码 public void setA(A a) { this.a = a; } } 第一个是直接合成使用A 第二个是用控制反转进行管理 书上只讲理论,我现在都不能体会Spring的IoC和不用相比有什么好处,能具体说...

七大设计原则(2)依赖倒置原则

勇哥注:此文转载自 https://zhuanlan.zhihu.com/p/466223262 勇哥只是把代码转成了C#。控制反转(IoC)是什么?「反转」到底反转了什么?Spring和IOC之间是什么关系?依赖注入(DI)和依赖倒置原则(DIP)又是什么?IOC、DI和DIP有什么关系?1. 控制反转(IoC)1.1 一个典型案例介绍「控制反转」之前,我们先看一段代码 public cl...

依赖倒置(反转)(DIP),控制反转(IoC),依赖注入(DI),IoC容器

勇哥注:面向对象设计(OOD)有助于我们开发出高性能、易扩展、易利用的程序。其中,OOD有一个重要的思想就是依赖倒置原则(DIP),并由此引申出IoC、DI及IoC容器等概念。现在初步了解 一下这些概念:依赖倒置原则(DIP):一种软件架构设计的原则,是一种抽象概念。 (DIP缩写是指 Dependency inversion principle)控制反转(IoC):一种设计模式,是DIP的具体...

依赖注入 和 new 一个实例有什么区别吗?

勇哥注:这是知乎里一个人的困惑,答者回复非常好,特摘抄如下。问题: 今天刚看了一下 依赖注入 的概念,大致就是说如果一个服务类 A 需要另外一个服务类 B 中的方法, 那就直接将这个 B 这个类注入到 A 这个类中,但是我一想,这不就是在 A 类中 new 一个 B 类吗?? 或者可以直接在 A 类的构造器中 new 一个 B 类,然后 A 类中的所有方法都可以使用这个属性。 依赖注入和这...

设计模式-02.经典设计原则-第一节-单一职责原则,开闭原则,里式替换,接口隔离

文章目录设计模式经典设计原则-第一节单一职责原则(SRP)如何理解单一职责原则?如何判断类的职责是否足够单一?类的职责是否设计得越单一越好?开闭原则(OCP)如何理解“对扩展开放、修改关闭”?修改代码就意味着违背开闭原则吗?如何做到“对扩展开放、修改关闭”?如何在项目中灵活应用开闭原则?里式替换原则(LSP)如何理解“里式替换原则”?哪些代码明显违背了 LSP?接口隔离原则(ISP)如何理解“接口...

从信息论角度看“高内聚、低耦合”

作者:无忌链接:https://zhuanlan.zhihu.com/p/648004207来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。近期了解了不少关于压缩算法和程序设计的大佬文章,突然发现这两个内容是可以在某个角度达成一致的,因此写此文对想法进行记录,希望给大家带来一定的启发。首先,非常感谢大佬们愿意花费自己的宝贵时间,分享珍贵的经验。互联网之所以伟大,就是因...

从“高内聚,低耦合”说起

作者:Thoughtworks中国链接:https://zhuanlan.zhihu.com/p/621391620来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。从“高内聚,低耦合”说起记得在上学的时候,⽼师就说过“⾼内聚,低耦合”,但当初对这句话的理解⽐较浅显。⼯作之后,为了说服别⼈采⽤⾃⼰设计的⽅案,常常说“……这样就做到了⾼内聚,低耦合……”。随着⼯作经验越来...

vs团队管理器git功能中的“比较文件”如何修改差异呢?

vs团队管理器的git功能中,当本地文件和远程文件有差异的时候。我们可以选择“比较文件”然后就弹出差异比较功能。其中左边是远程的,右边是本地的。但问题是,如何把左边的差异部分推到右边去呢? 或者如何把右边的差异推送到左边去呢?勇哥用过文件比较Beyond Compare这个软件,它是可以左右互推功能的。但是“文件比较”找不到类似的功能。如果使用ctrl+c, ctrl+v 也是没有效果的。难道“...

C# 多线程调用单例类时的安全性问题

勇哥注:C# 多线程调用单例类时的安全性问题是非常值得我们重视的,出现类似的问题会造成软件出现偶发问题,非常隐蔽。单例类造成的问题主要有两方面: 一是你的单例到底是不是单例? 二是你的单例是不是在被多线程调用。第一个问题请参考:C#实现单例模式的几种方法总结 http://www.skcircle.com/?id=1924 第二个问题请参考下面的说明:多个线程,同时调用单例的同一个方法会出现什么现...

勇哥的面向对象的练习题----动物的运动会

勇哥注:为了方便大家做面向对象的实践,特地收集了几个例子:“动物的运动会”、“计算器”、“养猪场的故事”。它们都有参考答案,见下载。这篇里勇哥只写出需求和知识点而不直接提供代码,以方便大家做编码练习。常见的设计原则:面向对向程序的三大特征: 封装,隐藏内部实现 继承,复用现有代码 多态,改写对象行为 设计模式的核心思想: (1)设计模式最根本的意图是适应需求的变化。 (2)编码应采...

代码重构读书笔记(C#代码演示) 第一章

由于原书是基于java,这里勇哥改为C#版本。先引入第一章的开篇例子。需求如下:需求: 影片出租,计算每一位顾客的消费金额并打印详单。 操作得告诉程序:顾客租了哪些影片、租期多长,程序便根据租赁时间和影片类型计算出费用。 影片分为三类:普通片、儿童片和新片。 除了计算费用,还要为常客计算积分,积分会根据影片种类是否新片而不同。 Movie 影片类 Rental 租赁类 Cu...

vs2015建模的一些问题记录

(1) 莫妙其妙出现继承的问题图上的类没有继承任何类,但实际上生成的带有继承关系。 解决方法用最笨的方式:删除原有的类,重新画一个就好了。真是奇怪的问题。(2)包是啥东西经过实验,发现包代表一个命名空间。包内部的类、接口都位于同一个命名空间。(3) 出现两个相同的继承的问题如下图所示,很奇怪。应该是UML类图本身的bug吧。解决方法还是删除这个类,重新画一遍就好了。(4)属性和字段的类型指定可以...

vs2015的建模,以及uml图生成代码

新建工程,建模项目请相信默认安装的vs2015是肯定有这个“建模项目”的。这时解决方案是空白的,在上面右键选择添加-〉新建项选择UML类图这时出现了编辑窗口,并且工具箱就有了内容。画一个图出来。空白处鼠标右键,“生成代码”然后出现下面这个,如果你点击“否”,我这边看到的是生成失败。如果你点是“是”,可能信息显示生成成功,但是代码在哪里呢? 毛都没得。这里是个很奇怪的坑。于是勇哥先退出工程,打次打开...

C#设计模式与建模相关篇子汇总

使用VS2013或VS2015生成UML类图 深入浅出UML类图(一)深入浅出UML类图(二)深入浅出UML类图(三)深入浅出UML类图(四)深入浅出UML类图(五)C# 设计模式练手(一):简单类工厂C# 设计模式练手(二):单例模式 设计模式之 面向对象的养猪厂的故事,C#演示(一) 设计模式之 面向对象的养猪厂的故事,C#演示(二) 勇哥谈谈C#中的接口Interface的常用套路...

StarUML使用简明教程

最近了解到StarUML比较多,所以写一篇教程供大家参考,不足支持,请见谅。StarUML(简称SU),是一种创建UML类图,生成类图和其他类型的统一建模语言(UML)图表的工具。StarUML是一个开源项目之一发展快、灵活、可扩展性强(zj).StarUML官方下载地址: http://staruml.io/download安装教程:安装步骤很简单,省略。注意:付费软件,如需破解网上很多教程,不...

深入浅出UML类图(五)

实例分析3——售票机控制程序 某运输公司决定为新的售票机开发车票销售的控制软件。图I给出了售票机的面板示意图以及相关的控制部件。售票机相关部件的作用如下所述: (1) 目的地键盘用来输入行程目的地的代码(例如,200表示总站)。 (2) 乘客可以通过车票键盘选择车票种类(单程票、多次往返票和座席种类)。 (3) 继续/取消键盘上的取消按钮用于取消购票过程,继...

深入浅出UML类图(四)

实例分析1——登录模块 某基于C/S的即时聊天系统登录模块功能描述如下: 用户通过登录界面(LoginForm)输入账号和密码,系统将输入的账号和密码与存储在数据库(User)表中的用户信息进行比较,验证用户输入是否正确,如果输入正确则进入主界面(MainForm),否则提示“输入错误”。 根据以上描述绘制初始类图。 参考解决方案: 参考类...

深入浅出UML类图(三)

类与类之间的关系(2) 2. 依赖关系 依赖(Dependency)关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系。大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数。在UML中,依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方。例如:驾驶员开车,在Driver类的drive()...

使用VS2013或VS2015生成UML类图

1.UML简介Unified Modeling Language (UML)又称统一建模语言或标准建模语言。简单说就是以图形方式表现模型,根据不同模型进行分类,在UML 2.0中有13种图,以下是他们的主要用途简介:1.用例图:对系统的使用方式分类.2.类图:显示类和它们的相互关系。3.对象图:只显示对象及它们的相互关系。4.活动图:显示人或对象的活动,其方式类似于流程图。5.状态机图:显示生命周...

深入浅出UML类图(二)

类与类之间的关系(1) 在软件系统中,类并不是孤立存在的,类与类之间存在各种关系,对于不同类型的关系,UML提供了不同的表示方式。 1. 关联关系 关联(Association)关系是类与类之间最常用的一种关系,它是一种结构化关系,用于表示一类对象与另一类对象之间有联系,如汽车和轮胎、师傅和徒弟、班级和学生等等。在UML类图中,用实线连接有关联关系的对象所对应的类,在...

深入浅出UML类图(一)

在UML 2.0的13种图形中,类图是使用频率最高的UML图之一。Martin Fowler在其著作《UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition》(《UML精粹:标准对象建模语言简明指南(第3版)》)中有这么一段:“If someone were to come up...
会员中心
搜索
«    2024年5月    »
12345
6789101112
13141516171819
20212223242526
2728293031
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864