自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 WPF入门_02依赖属性

1、依赖属性主要有以下三个优点1)依赖属性加入了属性变化通知、限制、验证等功能。这样可以使我们更方便地实现应用,同时大大减少了代码量2)节约内存:在WinForm中,每个UI控件的属性都赋予了初始值,这样每个相同的控件在内存中都会保存一份初始值。而WPF依赖属性很好地解决了这个问题,它内部实现使用哈希表存储机制,对多个相同控件的相同属性的值都只保存一份3)支持多种提供对象:可以通过多种方式来设置依赖属性的值。可以配合表达式、样式和绑定来对依赖属性设置值

2024-10-17 21:22:34 467

原创 WPF入门_01布局

布局系统的工作原理是先测量后排列,测量即是确定面板需要多大空间,排列则是定义面板内子元素的排列规则。所以,要实现自定义布局控件,需要继承于Panel类并重写MeasureOverride和ArrangeOverride方法即可(参照代码;✳详细的代码实现,请点击资源绑定。

2024-10-16 21:12:09 481

原创 c#代码介绍23种设计模式总结篇

1、设计原则需要遵循以下几个原则:单一职责原则开放封闭原则里氏代替原则依赖倒置原则接口隔离原则合成复用原则迪米特法则2、创建型模式3、结构型模式4.、行为型模式

2024-10-13 21:16:20 1165

原创 c#代码介绍23种设计模式_23备忘录模式

从字面意思就可以明白,备忘录模式就是对某个类的状态进行保存下来,等到需要恢复的时候,可以从备忘录中进行恢复。生活中这样的例子经常看到,如备忘电话通讯录,备份操作操作系统,备份数据库等。备忘录模式的具体定义是:在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可以把该对象恢复到原先的状态。

2024-10-11 20:34:23 913

原创 c#代码介绍23种设计模式_22访问者模式

访问者模式是封装一些施加于某种数据结构之上的操作。一旦这些操作需要修改的话,接受这个操作的数据结构则可以保存不变。访问者模式适用于数据结构相对稳定的系统, 它把数据结构和作用于数据结构之上的操作之间的耦合度降低,使得操作集合可以相对自由地改变。数据结构的每一个节点都可以接受一个访问者的调用,此节点向访问者对象传入节点对象,而访问者对象则反过来执行节点对象的操作。这样的过程叫做“双重分派”。节点调用访问者,将它自己传入,访问者则将某算法针对此节点执行。

2024-10-10 21:34:07 1302

原创 c#代码介绍23种设计模式_21责任链模式

从生活中的例子可以发现,某个请求可能需要几个人的审批,即使技术经理审批完了,还需要上一级的审批。这样的例子,还有公司中的请假,少于3天的,直属Leader就可以批准,3天到7天之内就需要项目经理批准,多余7天的就需要技术总监的批准了。介绍了这么多生活中责任链模式的例子的,下面具体给出面向对象中责任链模式的定义。责任链模式指的是——某个请求需要多个对象进行处理,从而避免请求的发送者和接收之间的耦合关系。将这些对象连成一条链子,并沿着这条链子传递该请求,直到有对象处理它为止。

2024-10-08 22:09:03 1135

原创 c#代码介绍23种设计模式_20策略者模式

策略模式是针对一组算法,将每个算法封装到具有公共接口的独立的类中,从而使它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化策略模式也就是对策略进行抽象,策略的意思就是方法,所以也就是对方法的抽象。

2024-10-07 21:48:58 960

原创 c#代码介绍23种设计模式_19状态者模式

每个对象都有其对应的状态,而每个状态又对应一些相应的行为,如果某个对象有多个状态时,那么就会对应很多的行为。那么对这些状态的判断和根据状态完成的行为,就会导致多重条件语句,并且如果添加一种新的状态时,需要更改之前现有的代码。这样的设计显然违背了开闭原则。状态模式正是用来解决这样的问题的。状态模式将每种状态对应的行为抽象出来成为单独新的对象,这样状态的变化不再依赖于对象内部的行为。

2024-10-06 19:01:07 1371

原创 c#代码介绍23种设计模式_18中介者模式

从生活中的例子可以看出,不论是QQ游戏还是QQ群,它们都是充当一个中间平台,QQ用户可以登录这个中间平台与其他QQ用户进行交流,如果没有这些中间平台,我们如果想与朋友进行聊天的话,可能就需要当面才可以了。电话、短信也同样是一个中间平台,有了这个中间平台,每个用户都不要直接依赖与其他用户,只需要依赖这个中间平台就可以了,一切操作都由中间平台去分发。了解完中介模式在生活中的模型后,下面给出中介模式的正式定义。中介者模式,定义了一个中介对象来封装一系列对象之间的交互关系。

2024-10-05 14:14:02 1184

原创 c#代码介绍23种设计模式_17观察者模式

从生活中的例子可以看出,只要对订阅号进行关注的客户端,如果订阅号有什么更新,就会直接推送给订阅了的用户。从中,我们就可以得出观察者模式的定义。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己的行为。

2024-10-04 22:54:38 1128

原创 c#代码介绍23种设计模式_16迭代器模式

迭代器是针对集合对象而生的,对于集合对象而言,必然涉及到集合元素的添加删除操作,同时也肯定支持遍历集合元素的操作,我们此时可以把遍历操作也放在集合对象中,但这样的话,集合对象就承担太多的责任了,面向对象设计原则中有一条是单一职责原则,所以我们要尽可能地分离这些职责,用不同的类去承担不同的职责。迭代器模式就是用迭代器类来承担遍历集合元素的职责。

2024-10-03 16:11:26 1688

原创 c#代码介绍23种设计模式_15命令模式

命令模式属于对象的行为型模式。命令模式是把一个操作或者行为抽象为一个对象中,通过对命令的抽象化来使得发出命令的责任和执行命令的责任分隔开。命令模式的实现可以提供命令的撤销和恢复功能。

2024-10-02 17:05:54 1147

原创 c#代码介绍23种设计模式_14模板方法模式

模板方法模式——在一个抽象类中定义一个操作中的算法骨架(对应于生活中的大家下载的模板),而将一些步骤延迟到子类中去实现(对应于我们根据自己的情况向模板填充内容)。模板方法使得子类可以不改变一个算法的结构前提下,重新定义算法的某些特定步骤,模板方法模式把不变行为搬到超类中,从而去除了子类中的重复代码。

2024-10-01 22:31:57 742

原创 c#代码介绍23种设计模式_13代理模式

代理模式按照使用目的可以分为以下几种1)远程(Remote)代理:为一个位于不同的地址空间的对象提供一个局域代表对象。这个不同的地址空间可以是本电脑中,也可以在另一台电脑中。最典型的例子就是——客户端调用Web服务或WCF服务。2)虚拟(Virtual)代理:根据需要创建一个资源消耗较大的对象,使得对象只在需要时才会被真正创建。3)Copy-on-Write代理:虚拟代理的一种,把复制(或者叫克隆)拖延到只有在客户端需要时,才真正采取行动。

2024-09-30 21:27:45 1075

原创 c#代码介绍23种设计模式_12亨元模式

享元模式——运用共享技术有效地支持大量细粒度的对象。享元模式可以避免大量相似类的开销,在软件开发中如果需要生成大量细粒度的类实例来表示数据,如果这些实例除了几个参数外基本上都是相同的,这时候就可以使用享元模式来大幅度减少需要实例化类的数量。如果能把这些参数(指的这些类实例不同的参数)移动类实例外面,在方法调用时将他们传递进来,这样就可以通过共享大幅度地减少单个实例的数目。(这个也是享元模式的实现要领),然而我们把类实例外面的参数称为享元对象的外部状态,把在享元对象内部定义称为内部状态。

2024-09-29 21:40:02 1117

原创 c#代码介绍23种设计模式_11外观模式

外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。使用外观模式时,我们创建了一个统一的类,用来包装子系统中一个或多个复杂的类,客户端可以直接通过外观类来调用内部子系统中方法,从而外观模式让客户和子系统之间避免了紧耦合。

2024-09-28 11:29:40 1091

原创 c#代码介绍23种设计模式_10组合模式

组合模式允许你将对象组合成树形结构来表现”部分-整体“的层次结构,使得客户以一致的方式处理单个对象以及对象的组合组合模式实现的最关键的地方是——简单对象和复合对象必须实现相同的接口。这就是组合模式能够将组合对象和简单对象进行一致处理的原因。

2024-09-27 21:36:52 957

原创 c#代码介绍23种设计模式_09装饰者模式

装饰者模式采用对象组合而非继承的方式实现了再运行时动态地扩展对象功能的能力,而且可以根据需要扩展多个功能,避免了单独使用继承带来的 ”灵活性差“和”多子类衍生问题“。同时它很好地符合面向对象设计原则中 ”优先使用对象组合而非继承“和”开放-封闭“原则

2024-09-26 20:46:34 1469

原创 c#代码介绍23种设计模式_07适配器模式

在实际的开发过程中,由于应用环境的变化(例如使用语言的变化),我们需要的实现在新的环境中没有现存对象可以满足,但是其他环境却存在这样现存的对象。那么如果将“将现存的对象”在新的环境中进行调用呢?解决这个问题的办法就是我们本文要介绍的适配器模式——使得新环境中不需要去重复实现已经存在了的实现而很好地把现有对象(指原来环境中的现有对象)加入到新环境来使用

2024-09-23 21:57:15 865

原创 c#代码介绍23种设计模式_06原型模式

在软件系统中,当创建一个类的实例的过程很昂贵或很复杂,并且我们需要创建多个这样类的实例时,如果我们用new操作符去创建这样的类实例,这未免会增加创建类的复杂度和耗费更多的内存空间,因为这样在内存中分配了多个一样的类实例对象,是对对象实例中字段引用的对象也进行拷贝,如果一个对象有一个指向字符串的字段,并且我们对该对象进行了深拷贝的话,那么我们将创建一个对象和一个新的字符串,新的对象将引用新的字符串。例如,如果一个对象有一个指向字符串的字段,并且我们对该对象做了一个浅拷贝,那么这两个对象将引用同一个字符串,

2024-09-22 17:12:08 1215

原创 c#代码介绍23种设计模式_05建造者模式

建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式使得建造代码与表示代码的分离,可以使客户端不必知道产品内部组成的细节,从而降低了客户端与具体产品之间的耦合度。

2024-09-22 16:40:06 701

原创 c#代码介绍23种设计模式-08桥接模式

桥接模式即将抽象部分与实现部分脱耦,使它们可以独立变化。对于上面的问题中,抽象化也就是RemoteControl类,实现部分也就是On()、Off()、NextChannel()等这样的方法(即遥控器的实现),上面的设计中,抽象化和实现部分在一起,桥接模式的目的就是使两者分离,根据面向对象的封装变化的原则,我们可以把实现部分的变化(也就是遥控器功能的变化)封装到另外一个类中,这样的一个思路也就是桥接模式的实现。

2024-09-22 16:30:39 1260

原创 c#代码介绍23种设计模式_04抽象工厂模式

提供一个创建产品的接口来负责创建相关或依赖的对象,而不具体明确指定具体类抽象工厂允许客户使用抽象的接口来创建一组相关产品,而不需要知道或关心实际生产出的具体产品是什么。这样客户就可以从具体产品中被解耦。

2024-09-22 15:36:48 828

原创 c#代码介绍23种设计模式_03工厂模式

工厂方法模式通过面向对象编程中的多态性来将对象的创建延迟到具体工厂中,从而解决了简单工厂模式中存在的问题,也很好地符合了开放封闭原则(即对扩展开发,对修改封闭)

2024-09-22 15:26:38 981

原创 c#代码介绍23种设计模式_02简单工厂模式

在设计模式中,简单工厂模式我们也可以理解为负责生产对象的一个类。我们平常编程中,当使用"new"关键字创建一个对象时,此时该类就依赖与这个对象,也就是他们之间的耦合度高,当需求变化时,我们就不得不去修改此类的源码,此时我们可以运用面向对象(OO)的很重要的原则去解决这一的问题,该原则就是——封装改变,既然要封装改变,自然也就要找到改变的代码,然后把改变的代码用类来封装,这样的一种思路也就是我们简单工厂模式的实现方式。

2024-09-21 22:39:54 872

原创 c#代码介绍23种设计模式_01单例模式

从单例模式的定义中我们可以看出——单例模式的使用自然是当我们的系统中某个对象只需要一个实例的情况,例如:操作系统中只能有一个任务管理器。

2024-09-21 22:30:11 476

原创 .Net 进程、应用程序域、上下文与线程之间的关系详解

它是进程中的基本执行单元,在进程入口执行的第一个线程被视为这个进程的主线程。一般不需要指定特定上下文的对象被称为上下文灵活对象(context-agile),建立此对象不需要特定的操作,只需要由CLR自行管理,一般这些对象都会被建立在默认上下文当中。在 System.Diagnostics 命名空间当中存在Process类,专门用于管理进程的开始、结束,访问进程中的模块,获取进程中的线程,设定进程的优先级别等。应用程序域是CLR中资源的边界,一般情况下,应用程序域中的对象不能被外界的对象所访问。

2024-09-15 22:21:05 592

WPF入门-02依赖属性(附c#代码)

1.依赖属性主要有以下三个优点: .依赖属性加入了属性变化通知、限制、验证等功能。这样可以使我们更方便地实现应用,同时大大减少了代码量 .节约内存:在WinForm中,每个UI控件的属性都赋予了初始值,这样每个相同的控件在内存中都会保存一份初始值。而WPF依赖属性很好地解决了这个问题,它内部实现使用哈希表存储机制,对多个相同控件的相同属性的值都只保存一份 .支持多种提供对象:可以通过多种方式来设置依赖属性的值。可以配合表达式、样式和绑定来对依赖属性设置值 2.依赖属性的定义(Person.cs) 1)让依赖属性的所在类型继承自DependencyObject类。代码片段(propdp) 2)使用public static 声明一个DependencyProperty的变量,该变量就是真正的依赖属性。 3)在类型的静态构造函数中通过Register方法完成依赖属性的元数据注册。 4)提供一个依赖属性的包装属性Name,通过这个属性来完成对依赖属性的读写操作。 5)在画面可以通过如下方式来绑定依赖属性Name <Label content="{Binding Name,Relative

2024-10-17

《机器学习基石》-林轩田05

注意力机制 Lecture 5: Training versus Testing Recap and Preview two questions: Eout(g) ≈ Ein(g), and Ein(g) ≈ 0 Effective Number of Lines at most 14 through the eye of 4 inputs Effective Number of Hypotheses at most mH(N) through the eye of N inputs Break Point when mH(N) becomes ‘non-exponential’

2024-10-17

《机器学习基石》-林轩田04

注意力机制 Lecture 4: Feasibility of Learning Learning is Impossible? absolutely no free lunch outside D Probability to the Rescue probably approximately correct outside D Connection to Learning verification possible if Ein(h) small for fixed h Connection to Real Learning learning possible if jHj finite and Ein(g) small

2024-10-17

《机器学习基石》-林轩田03

注意力机制 Lecture 3: Types of Learning Learning with Different Output Space Y [classification], [regression], structured Learning with Different Data Label yn [supervised], un/semi-supervised, reinforcement Learning with Different Protocol f ) (xn; yn) [batch], online, active Learning with Different Input Space X [concrete], raw, abstract

2024-10-17

WPF入门-01布局(附代码)

WPF布局包括两个阶段:一个测量(measure)阶段和一个排列(arrange)阶段.每个Panel都提供了自己的MeasureOverride和ArrangeOverride方法 1,Canvas 布局控件 Canvas面板是最轻量级的布局容器,它不会自动调整内部元素的排列和大小,不指定元素位置,元素将默认显示在画布的左上方。Canvas主要用来画图 2,StackPanel 布局控件 将子元素按照堆栈的形式一一排列,可以通过设置StackPanel的Orientation属性设置两种排列方式:横排(Horizontal,该值为默认值)和竖排(Vertical)。纵向的StackPanel每个元素默认宽度与面板一样宽,反之横向是高度和面板一样高 3,WrapPanel 布局控件 WrapPanel面板在可能的空间中,一次以一行或一列的方式布置控件。默认情况下,WrapPanel.Orientation属性设置为Horizontal,控件从左向右进行排列, 然后再在下一行中排列,但你可将WrapPanel.Orientation设置为Vertical,从而在多个列

2024-10-16

《机器学习基石》-林轩田02

机器学习 Lecture 2: Learning to Answer Yes/No Perceptron Hypothesis Set hyperplanes/linear classifiers in Rd Perceptron Learning Algorithm (PLA) correct mistakes and improve iteratively Guarantee of PLA no mistake eventually if linear separable Non-Separable Data hold somewhat ‘best’ weights in pocket

2024-10-16

《机器学习基石》-林轩田01

机器学习 Lecture 1: The Learning Problem Course Introduction foundation oriented and story-like What is Machine Learning use data to approximate target Applications of Machine Learning almost everywhere Components of Machine Learning A takes D and H to get g Machine Learning and Other Fields related to DM, AI and Stats

2024-10-16

《Machine Learning》课程PPT-吴恩达18

机器学习 Application example: Photo OCR   1、Problem description and pipeline 2、Sliding windows 3、Getting lots of data: Artificial data  synthesis 4、Ceiling analysis: What part of the pipeline to work on  next

2024-10-16

《Machine Learning》课程PPT-吴恩达17

机器学习 Large scale machine learning 1、Learning with large datasets 2、Stochastic gradient descent 3、Mini-batch gradient descent 4、Stochastic gradient descent convergence 5、Online learning 6、Map-reduce and data parallelism

2024-10-15

《Machine Learning》课程PPT-吴恩达16

机器学习 Recommender Systems   1、Problem formulation 2、Content-based recommendations 3、Collaborative filtering 4、Collaborative filtering algorithm 5、Vectorization:Low rank matrix factorization 6、Implementational detail: Mean normalization

2024-10-15

《Machine Learning》课程PPT-吴恩达15

机器学习 Anomaly detection   1、Problem motivation 2、Gaussian distribution 3、Algorithm 4、Developing and evaluating an anomaly detection system 5、Anomaly detection vs.  supervised learning 6、Choosing what features to use 7、Multivariate Gaussian distribution 8、Anomaly detection using the multivariate Gaussian distribution

2024-10-15

《Machine Learning》课程PPT-吴恩达14

人工智能 Dimensionality Reduction   1、Motivation I : Data Compression 2、Motivation  II: Data Visualiza1on 3、Principal Component Analysis problem formulation 4、Principal Component Analysis algorithm 5、Reconstruction from compressed representation 6、Choosing the number of principal components 7、Advice for applying PCA  

2024-10-14

《Machine Learning》课程PPT-吴恩达13

人工智能 Clustering   1、Unsupervised learning introduction 2、K-means algorithm 3、Optimization objective 4、Random initialization 5、Choosing the number of clusters

2024-10-14

《Machine Learning》课程PPT-吴恩达12

人工智能 Support Vector Machines   1、Optimization objective 2、Large Margin Intuition 3、The mathematics behind  large  margin classification(optional) 4、Kernels I 5、Kernels II 6、Using an SVM

2024-10-14

《Machine Learning》课程PPT-吴恩达11

人工智能 Machine learning system design   1、Prioritizing what to work on:Spam classification example 2、Error analysis 3、Error metrics for skewed classes 4、Trading off precision and recall 5、Data for  machine learning

2024-10-13

《Machine Learning》课程PPT-吴恩达10

人工智能 Advice for applying machine learning   1、Deciding what to try next 2、Evaluating a hypothesis 3、Model selecDon and training/validaDon/test sets 4、Diagnosing bias vs. variance 5、Regularization and bias/variance 6、Learning curves 7、Deciding what to try next (revisited)

2024-10-13

《Machine Learning》课程PPT-吴恩达09

人工智能 Neural Networks: Learning   1、Cost function 2、Backpropagation algorithm 3、Backpropagation intuition 4、Implementation note: Unrolling parameters 5、Gradient checking 6、Random initialization 7、Putting it together 8、Backpropagation example: Autonomous driving (optional)

2024-10-13

脚本Powershell的帮助文档chm

脚本 Powershell chm版 cmdlet 是一个内置到 shell 中的简单的单一功能命令行工具。可以就像使用传统的命令和实用工具那样使用 cmdlet。首先在 Windows PowerShell 命令提示符下键入 cmdlet 的名称。Windows PowerShell 命令不区分大小写,因此可以用任意大小写键入。 例如,可以尝试 Get-Date cmdlet: C:\PS> get-date Thursday, November 10, 2005 4:43:50 PM 若要列出会话中的 cmdlet,请使用不带任何命令参数的 Get-Command cmdlet。 PS> get-command CommandType Name Definition ----------- ---- ----------

2024-10-12

《Machine Learning》课程PPT-吴恩达08

机器学习 Neural Networks:Representation 1、Non-linear hypothese 2、Neurons and the brain 3、Model representation I 4、Model representation II 5、Examples and intuitions I 6、Examples and intuitions II 7、Multi-class classification

2024-10-11

《Machine Learning》课程PPT-吴恩达07

机器学习 Regularization 1、The problem of overfitting 2、Cost function 3、Regularized linear regression 4、Regularized logistic regression

2024-10-11

c#代码介绍23种设计模式-23备忘录模式(附代码)

个人理解:(利用备忘录对象来保存发起人的内部状态,需要恢复时可以从备忘录对象获取) 1、创建联系人类,作为发起人的内部状态 public class ContactPerson -> public string Name { get; set; } -> public string MobileNum { get; set; } 2、创建备忘录类 public class ContactMemento -> public List<ContactPerson> contactPersonBack; //发起人的内部状态 -> public ContactMemento(List<ContactPerson> persons) -> contactPersonBack = persons; 3、创建管理者角色(用于保存备忘录对象) public class Caretaker -> public ContactMemento ContactM { get; set; } 4、创建发起人类 public class

2024-10-11

《Machine Learning》课程PPT-吴恩达06

大模型实战教程 1、Classification 2、Hypothesis Representation 3、Decision boundary 4、Cost function 5、Simplified cost function and gradient descent 6、Advanced optimization 7、Multi-­‐class classification:One-­‐vs-­‐all

2024-10-10

《Machine Learning》课程PPT-吴恩达05

大模型实战教程 Octave Tutorial 1、Basic operations 2、Moving data around 3、Computing on data 4、Plotting data 5、Control statements 6、Vectorial implementation

2024-10-10

《Machine Learning》课程PPT-吴恩达04

大模型实战教程 Linear Regression with multiple variables   1、Multiple features 2、Gradient descent for multiple variables 3、Gradient descent  in practice  I:Feature Scaling 4、Gradient descent  in practice II: Learning rate 5、Features and polynomial regression 6、Normal equation 7、Normal equation and non-­‐inver2bility(optional)  

2024-10-10

c#代码介绍23种设计模式-22访问者模式(附代码)

1. 访问者模式的定义 访问者模式是封装一些施加于某种数据结构之上的操作。一旦这些操作需要修改的话,接受这个操作的数据结构则可以保存不变。 访问者模式适用于数据结构相对稳定的系统, 它把数据结构和作用于数据结构之上的操作之间的耦合度降低,使得操作集合可以相对自由地改变。 数据结构的每一个节点都可以接受一个访问者的调用,此节点向访问者对象传入节点对象,而访问者对象则反过来执行节点对象的操作。 这样的过程叫做“双重分派”。节点调用访问者,将它自己传入,访问者则将某算法针对此节点执行 2. 访问者模式的结构图 从上面描述可知,访问者模式是用来封装某种数据结构中的方法。 具体封装过程是:每个元素接受一个访问者的调用,每个元素的Accept方法接受访问者对象作为参数传入,访问者对象则反过来调用元素对象的操作 这里需要明确一点:访问者模式中具体访问者的数目和具体节点的数目没有任何关系。 3. 从访问者的结构图可以看出,访问者模式涉及以下几类角色: 1)抽象访问者角色(Vistor):声明一个活多个访问操作,使得所有具体访问者必须实现的接口。 2)具体访问者角色(ConcreteVistor

2024-10-10

《Machine Learning》课程PPT-吴恩达03

大模型实战教程 Linear Algebra review (optional) 1、Matrices and vectors 2、Addition and scalar multiplication 3、Matrix‐vector multiplication 4、Matrix‐matrix multiplication 5、Matrix multiplication properties 6、Inverse and transpose

2024-10-09

《Machine Learning》课程PPT-吴恩达02

大模型实战教程 Linear regression with one variable / 1、Model representation 2、Cost function 3、Cost function intuition I 4、Cost function intuition II 5、Gradient descent 6、Gradient descent intuition 7、Gradient descent for linear regression “Batch”:Each step of gradient descent   uses all the training examples.

2024-10-09

《Machine Learning》课程PPT-吴恩达01

大模型实战教程 01_Introduction Machine Learning - Grew out of work in AI - New capability for computers Examples: - Database mining Large datasets from growth of automation/web. E.g., Web click data, medical records, biology, engineering - Applications can’t program by hand. E.g., Autonomous helicopter, handwriting recognition, most of Natural Language Processing (NLP), Computer Vision

2024-10-09

conda常用命令汇总

conda常用命令汇总

2024-10-09

c#代码介绍23种设计模式-21责任链模式(附代码)

在现实生活中,有很多请求并不是一个人说了就算的,例如面试时的工资,低于1万的薪水可能技术经理就可以决定了,但是1万~1万5的薪水可能技术经理就没这个权利批准,可能就需要请求技术总监的批准,所以在面试的完后, 经常会有面试官说,你这个薪水我这边觉得你这技术可以拿这个薪水的,但是还需要技术总监的批准等的话。这个例子也就诠释了本文要介绍的内容。生活中的这个例子真是应用了责任链模式 1. 责任链模式的定义 从生活中的例子可以发现,某个请求可能需要几个人的审批,即使技术经理审批完了,还需要上一级的审批。这样的例子,还有公司中的请假,少于3天的,直属Leader就可以批准,3天到7天之内就需要项目经理批准,多余7天的就需要技术总监的批准了。 介绍了这么多生活中责任链模式的例子的,下面具体给出面向对象中责任链模式的定义。 责任链模式指的是——某个请求需要多个对象进行处理,从而避免请求的发送者和接收之间的耦合关系。将这些对象连成一条链子,并沿着这条链子传递该请求,直到有对象处理它为止 2. 责任链模式的结构图 从责任链模式的定义可以发现,责任链模式涉及的对象只有处理者角色,但由于有多个处理者,它

2024-10-08

python3教程-廖雪峰

廖雪峰的python3教程

2024-10-08

c#代码介绍23种设计模式-20策略者模式(附代码)

在现实生活中,策略模式的例子也非常常见,例如,中国的所得税,分为企业所得税、外商投资企业或外商企业所得税和个人所得税, 针对于这3种所得税,针对每种,所计算的方式不同,个人所得税有个人所得税的计算方式,而企业所得税有其对应计算方式。 如果不采用策略模式来实现这样一个需求的话,可能我们会定义一个所得税类,该类有一个属性来标识所得税的类型, 并且有一个计算税收的CalculateTax()方法,在该方法体内需要对税收类型进行判断,通过if-else语句来针对不同的税收类型来计算其所得税。 这样的实现确实可以解决这个场景吗,但是这样的设计不利于扩展,如果系统后期需要增加一种所得税时,此时不得不回去修改CalculateTax方法来多添加一个判断语句, 这样明白违背了“开放——封闭”原则。此时,我们可以考虑使用策略模式来解决这个问题,既然税收方法是这个场景中的变化部分,此时自然可以想到对税收方法进行抽象 1. 策略模式的定义 策略模式是针对一组算法,将每个算法封装到具有公共接口的独立的类中,从而使它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化 策略模式也就是对策略进行

2024-10-07

c#代码介绍23种设计模式-19状态者模式(附代码)

在上一篇文章介绍到可以使用状态者模式和观察者模式来解决中介者模式存在的问题,在本文中将首先通过一个银行账户的例子来解释状态者模式,通过这个例子使大家可以对状态者模式有一个清楚的认识,接着,再使用状态者模式来解决上一篇文章中提出的问题 1. 状态者模式的介绍 每个对象都有其对应的状态,而每个状态又对应一些相应的行为,如果某个对象有多个状态时,那么就会对应很多的行为。那么对这些状态的判断和根据状态完成的行为,就会导致多重条件语句,并且如果添加一种新的状态时,需要更改之前现有的代码。 这样的设计显然违背了开闭原则。状态模式正是用来解决这样的问题的。状态模式将每种状态对应的行为抽象出来成为单独新的对象,这样状态的变化不再依赖于对象内部的行为 2. 状态者模式的定义 状态模式——允许一个对象在其内部状态改变时自动改变其行为,对象看起来就像是改变了它的类(状态得类SilveStater(没利息)、GoldState(有利息)和RedState(赤字)) 3. 状态者模式的结构 既然状态者模式是对已有对象的状态进行抽象,则自然就有抽象状态者类和具体状态者类,而原来已有对象需要保存抽象状态者类的

2024-10-06

c#代码介绍23种设计模式-18中介者模式(附代码)

在现实生活中,有很多中介者模式的身影,例如QQ游戏平台,聊天室、QQ群和短信平台,这些都是中介者模式在现实生活中的应用 1. 中介者模式的定义 从生活中的例子可以看出,不论是QQ游戏还是QQ群,它们都是充当一个中间平台,QQ用户可以登录这个中间平台与其他QQ用户进行交流,如果没有这些中间平台,我们如果想与朋友进行聊天的话,可能就需要当面才可以了。 电话、短信也同样是一个中间平台,有了这个中间平台,每个用户都不要直接依赖与其他用户,只需要依赖这个中间平台就可以了,一切操作都由中间平台去分发。了解完中介模式在生活中的模型后,下面给出中介模式的正式定义。 中介者模式,定义了一个中介对象来封装一系列对象之间的交互关系。中介者使各个对象之间不需要显式地相互引用,从而使耦合性降低,而且可以独立地改变它们之间的交互行为。 2.中介者模式的结构 从生活中例子自然知道,中介者模式设计两个具体对象,一个是用户类,另一个是中介者类,根据针对接口编程原则,则需要把这两类角色进行抽象,所以中介者模式中就有了4类角色,它们分别是:抽象中介者角色,具体中介者角色、抽象同事类和具体同事类。 中介者类是起到协调各个

2024-10-05

c#代码介绍23种设计模式-17观察者模式(附代码)

在现实生活中,处处可见观察者模式,例如,微信中的订阅号,订阅博客和QQ微博中关注好友,这些都属于观察者模式的应用 1. 观察者模式的定义 从生活中的例子可以看出,只要对订阅号进行关注的客户端,如果订阅号有什么更新,就会直接推送给订阅了的用户。从中,我们就可以得出观察者模式的定义。 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己的行为。 2. 观察者模式的结构 从上面观察者模式的定义和生活中的例子,很容易知道,观察者模式中首先会存在两个对象,一个是观察者对象,另一个就是主题对象,然而,根据面向接口编程的原则,则自然就有抽象主题角色和抽象观察者角色。 理清楚了观察者模式中涉及的角色后,接下来就要理清他们之间的关联了,要想主题对象状态发生改变时,能通知到所有观察者角色,则自然主题角色必须所有观察者的引用,这样才能在自己状态改变时,通知到所有观察者。 3. 在观察者模式的结构图有以下角色: 抽象主题角色(Subject):抽象主题把所有观察者对象的引用保存在一个列表中,并提供增加和删

2024-10-04

c#代码介绍23种设计模式-16迭代器模式(附代码)

1. 迭代器模式的介绍 迭代器是针对集合对象而生的,对于集合对象而言,必然涉及到集合元素的添加删除操作,同时也肯定支持遍历集合元素的操作,我们此时可以把遍历操作也放在集合对象中, 但这样的话,集合对象就承担太多的责任了,面向对象设计原则中有一条是单一职责原则,所以我们要尽可能地分离这些职责,用不同的类去承担不同的职责。迭代器模式就是用迭代器类来承担遍历集合元素的职责 2. 迭代器模式的定义 迭代器模式提供了一种方法顺序访问一个聚合对象(理解为集合对象)中各个元素,而又无需暴露该对象的内部表示,这样既可以做到不暴露集合的内部结构,又可让外部代码透明地访问集合内部的数据。 3. 迭代器模式的结构 迭代器模式承担了遍历集合对象的职责,则该模式自然存在2个类,一个是聚合类,一个是迭代器类。 在面向对象涉及原则中还有一条是针对接口编程,所以,在迭代器模式中,抽象了2个接口,一个是聚合接口,另一个是迭代器接口,这样迭代器模式中就四个角色了, 4. 跌代器模式由以下角色组成: 迭代器角色(Iterator):迭代器角色负责定义访问和遍历元素的接口

2024-10-03

c#代码介绍23种设计模式-15命令模式(附代码)

1. 命令模式的定义 命令模式属于对象的行为型模式。命令模式是把一个操作或者行为抽象为一个对象中,通过对命令的抽象化来使得发出命令的责任和执行命令的责任分隔开。 命令模式的实现可以提供命令的撤销和恢复功能。 2. 命令模式的结构 既然,命令模式是实现把发出命令的责任和执行命令的责任分割开,然而中间必须有某个对象来帮助发出命令者来传达命令,使得执行命令的接收者可以收到命令并执行命令。 例如,开学了,院领导说计算机学院要进行军训,计算机学院的学生要跑1000米,院领导的话也就相当于一个命令,他不可能直接传达给到学生,他必须让教官来发出命令,并监督学生执行该命令。 在这个场景中,发出命令的责任是属于学院领导,院领导充当与命令发出者的角色,执行命令的责任是属于学生,学生充当于命令接收者的角色,而教官就充当于命令的发出者或命令请求者的角色,然而命令模式的精髓就在于把每个命令抽象为对象 3. 涉及到五个角色,它们分别是: 客户角色:发出一个具体的命令并确定其接受者。 命令角色:声明了一个给所有具体命令类实现的抽象接口 具体命令角色:定义了一个接受者和行为的弱耦合,负责调用接受者的相应方法。

2024-10-02

停止机器上所有的Oracle的DB服务的小工具

我们在开发测试时,一台服务器上可能会建好多个db,将db服务都停止,也是一个不小的工作量 可以使用这个小工具,进行批量的Oracle服务的停止 应用场景:有特殊情况服务器要关机,这时如果DB没有提前关闭的话,再启动有时会有问题。最稳妥的方法是先关db服务,再关机

2024-10-02

DevOps培训实验手册:从环境搭建到工具应用

内容概要:本手册介绍了DevOps相关的技术工具与平台的实验指南,覆盖了包括 SVN、Docker、GitLab、Jenkins、SonarQube、Nexus在内的版本控制、CI/CD流水线搭建等方面的知识。书中详细介绍每个工具有何用途,并指导如何一步步地在CentOS系统环境下进行软件安装与系统配置,此外还有使用技巧的讲解。 适用人群:针对有一定IT基础知识并希望深入了解DevOps实践的技术人员。 使用场景及目标:帮助技术人员通过详细的实际操作示例学会如何利用DevOps工具提升团队的研发效率和工程质量。 阅读建议:本手册旨在指导技术人员动手实操练习各项任务和技术要点,在使用本手册过程中应参照所提供的步骤逐一尝试并解决在实际环境中可能遭遇的各种问题。 1 实验环境 2 Git代码托管平台GitLab 3 Jenkins Pipeline介绍 4 Jenkins部署 5 SonarQube部署 6 Nexus容器部署 7 Java案例项目实战 8 Zabbix部署 9 SaltStack快速入门 10 Ansible快速入门

2024-10-02

c#代码介绍23种设计模式-14模板方法模式(附代码)

在设计模式中,模板方法模式中模板和生活中模板概念非常类似,下面让我们就详细介绍模板方法的定义,大家可以根据生活中模板的概念来理解模板方法的定义 1. 模板方法模式的定义 模板方法模式——在一个抽象类中定义一个操作中的算法骨架(对应于生活中的大家下载的模板),而将一些步骤延迟到子类中去实现(对应于我们根据自己的情况向模板填充内容)。 模板方法使得子类可以不改变一个算法的结构前提下,重新定义算法的某些特定步骤,模板方法模式把不变行为搬到超类中,从而去除了子类中的重复代码。 2. 模板方法模式的实现 下面以生活中炒蔬菜为例来实现下模板方法模式。在现实生活中,做蔬菜的步骤都大致相同,如果我们针对每种蔬菜类定义一个烧的方法,这样在每个类中都有很多相同的代码,为了解决这个问题, 我们一般的思路肯定是把相同的部分抽象出来到抽象类中去定义,具体子类来实现具体的不同部分,这个思路也正式模板方法的实现精髓所在 3. 模板方法模式中涉及了两个角色: 抽象模板角色(Vegetable扮演这个角色):定义了一个或多个抽象操作,以便让子类实现,这些抽象操作称为基本操作。

2024-10-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除