-
开闭原则(设计模式6)
遵循开闭原则设计出的模块具有两个主要特征:对于扩展是开放的(Open for extension)。这意味着模块的行为是可以扩展的。当应用的需求改变时,我们可以对模块进行扩展,使其具有满足那些改变的新行为。也就是说,我们可以改变模块的功能。对于修改是关闭的(Closed for modification)。对模块行为进行扩展时,不必改...
作者:小编 日期:2026.06.17 分类:文档 409 -
PAT (Top Level) Practice 1003 Universal Travel Sites (35 分)
题目链接:https://pintia.cn/problem-sets/994805148990160896/problems/994805155688464384 题很难理解,但其实就是普通的 网络流最大流(从源点到汇点可以运送的最大乘客)。建图用stl。 算法:网络流最大流(Dinic) #include<iostream> #include<cstdio> #include<cstring>...
作者:小编 日期:2026.06.17 分类:文档 468 -
迪米特法则(设计模式5)
迪米特法则:迪米特法则(Law of Demeter)又叫作最少知识原则(Least Knowledge Principle 简写LKP),就是说一个对象应当对其他对象有尽可能少的了解,不和陌生人说话。英文简写为: LoD.定义:一个对象应该对其他对象保持最少的了解。问题由来:类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对...
作者:小编 日期:2026.06.17 分类:教程 1063 -
Python示例代码之sftp上传下载文件
sftp的上传下载是最为常见的功能之一,实现也很简单,网上资料很多,但为了Python知识点的完整性,还是再描述了一遍。 通常我们使用paramiko库实现sftp的操作,paramiko的安装可以使用“pip install paramiko”直接实现安装。 实现sftp上传下载的示例代码如下: import paramiko def upload_action(IP, User...
作者:小编 日期:2026.06.17 分类:类库 1811 -
接口隔离原则(设计模式4)
接口隔离原则:使用多个专门的接口比使用单一的总接口要好。一个类对另外一个类的依赖性应当是建立在最小的接口上的。一个接口代表一个角色,不应当将不同的角色都交给一个接口。没有关系的接口合并在一起,形成一个臃肿的大接口,这是对角色和接口的污染。“不应该强迫客户依赖于它们不用的方法。接口属于客户,不属于它所在的类层次结构。”这个说得很明白了,...
作者:小编 日期:2026.06.17 分类:算法 178 -
依赖倒置原则(设计模式3)
依赖倒置原则:A.高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象。B.抽象不应该依赖于具体,具体应该依赖于抽象。定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,...
作者:小编 日期:2026.06.16 分类:算法 939 -
使用 store 来优化 React 组件
在使用 React 编写组件的时候,我们常常会碰到两个不同的组件之间需要共享状态情况,而通常的做法就是提升状态到父组件。但是这样做会有一个问题,就是尽管只有两个组件需要这个状态,但是因为把状态提到了父组件,那么在状态变化的时候,父组件以及其下面的所有子组件都会重新 render,如果你的父组件比较复杂,包含了其他很多子组件的话,就有可能引起性能问题。 Redux 通过把状态放在全局的 store 里,然后组件去订阅各自需要的状态...
作者:小编 日期:2026.06.16 分类:语言 552 -
里氏替换原则(设计模式原则2)
里氏替换原则通俗的来讲就是:子类可以扩展父类的功能,但不能改变父类原有的功能。它包含以下4层含义:子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。子类中可以增加自己特有的方法。当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回...
作者:小编 日期:2026.06.16 分类:文档 1270 -
如何成为一名C++高级程序员?
C++这门语言从诞生到今天已经经历了将近30个年头。不可否认,它的学习难度都比其它语言较高。而它的学习难度,主要来自于它的复杂性。现在C++的使用范围比以前已经少了很多,java、C#、python等语言在很多方面已经可以代替C++。但是也有很多地方是其他语言完全无法替代的,主要集中在需要运行效率比较高的行业,比如游戏、高效的服务器。 现在学习java、C#等语言的人数远远高于C++,主要是C++的入门门槛太高,可能学习了一段时...
作者:小编 日期:2026.06.16 分类:手册 205






