当前位置: 首页 > news >正文

哪些做任务可以赚钱的网站/微信怎么推广找客源

哪些做任务可以赚钱的网站,微信怎么推广找客源,怎么搜做传奇私服网站总出来,咨询行业网站建设公司设计模式主要原则 单一职责原则(Single Responsibility Principle) 实现类要职责单一 里氏替换原则(Liskov Substitution Principle) 不要破坏继承关系 依赖倒置原则(Dependence Inversion Principle) …

设计模式主要原则

  • 单一职责原则(Single Responsibility Principle)

实现类要职责单一

  • 里氏替换原则(Liskov Substitution Principle)

不要破坏继承关系

  • 依赖倒置原则(Dependence Inversion Principle)

面向接口编程

  • 接口隔离原则(Interface Segregation Principle)

设计接口时要精简单一,提供尽可能小的单独接口

  • 迪米特法则(Law Of Demeter)

最少知识原则,尽量少的发生相互作用

  • 开闭原则(Open Closed Principle)

可扩展,但不可修改

  • 合成复用原则(Composite Reuse Principle)

优先组合或聚合,其次才是考虑继承

设计模式

一、创建型模式(Creational)5种

        关注对象的创建过程,对类的实例化过程进行抽象,描述如何将对象的创建和使用分离。

1、工厂方法模式(Factory Method)

定义了一个用于创建对象的接口,让类的实例化延迟到子类中实现

抽象产品——具体产品

抽象工厂——具体工厂

主要优点:

        要添加新的产品时,无需修改抽象工厂和抽象产品提供的接口,无需修改客户端,也无需修改其他的具体工厂和具体产品,只要添加一个具体工厂和具体产品即可,从而提高系统的可扩展性(开闭原则)

2、抽象工厂模式(Abstract Factory)

定义一系列相关或相互依赖创建对象的接口,而无需指定具体的类

抽象产品——具体产品

抽象工厂——具体工厂

主要优点:

        当有多于一个的产品族时,可以动态的改变产品族,也可以方便增加新的产品族

3、单例模式(Singleton)

确保一个类只有一个实例,并提供一个全局访问点来访问

主要优点:

        提供唯一实例的受控访问

4、建造者模式(Builder)

将一个复杂对象的构建与它的表示分离,在客户不知道对象的建造过程和细节的情况下就可以直接创建复杂的对象

产品

抽象建造者——具体建造者

客户

主要优点:

        建造者模式负责按顺序创建复杂对象,隐藏内部的建造过程和细节

        代码复用性和封装性

5、原型模式(Prototype)

通过复制原型来创建新的对象

抽象原型——具体原则

客户

主要优点:

        简化对象的创建过程

        可以通过深克隆的方式保存对象的状态,以便在需要的时候使用

二、结构型模式(Structural)7种

1、桥接模式(Bridge)

将抽象与实现分离,使它们可以独立变化(用聚合关系代替继承关系来实现,抽象层聚合)

抽象对象——扩展抽象对象

抽象实现化——具体实现化

主要优点:

        抽象类和实现类之间增加更多的灵活性

        解决继承或多层次继承导致系统类数量剧增的问题

2、适配器模式(Adapter)

将一个类的接口转换成另一个接口,让本来接口不兼容的类能够一起使用

适配器模式分为类结构型模式和对象结构型模式

目标接口

适配类

适配器类(转换器)

主要优点:

        客户可以透明调用目标接口 

        复用了现存代码

3、装饰模式(Decorator)

动态地给对方增加一些职责,也就是增加额外功能

抽象对象——具体对象

抽象装饰对象——具体装饰对象

主要优点

        扩展方式比采用继承方法更加灵活

主要应用场景

        现有类被隐藏或终极类或继承方式繁琐

        一些基本功能排列组合而产生很多功能

        动态添加或动态撤销新能力

4、组合模式(Composite)

又叫部分-整体模式,它是一种将对象组合成树状的层次结构的模式,用来表示“部分-整体”的关系,使客户对单个对象和组合对象具有一致的访问性

主要优点:

        对单个对象和组合对象有一致性的处理

        容易在组体内加入新对象

5、享元模式(Flyweight)

运用共享技术来有效的支持大量细粒度对象的复用

享元模式两种状态:

        内部状态:不会随环境变化的可共享部分

        外部状态:随环境变化的不可共享部分

抽象享元——具体享元

非享元

享元工厂

主要优点:

        相同对象只要保存一份,这降低了系统中对象的数量,从而降低了系统中细粒度对象给内存带来的压力(存在大量相同或相似的对象时使用此模式才会带来好处)

6、外观模式(Facade)

为多个复杂的子系统提供一个一致的接口,使这些子系统能够更容易被访问

抽象外观——外观

子系统

客户

主要优点:

        降低了客户与子系统之间的耦合度

        屏蔽子系统组件,使用更容易

7、代理模式(Proxy)

为某对象提供一种代理以控制对象的访问(限制、增强或修改该对象的一些特征)

抽象产品类——具体产品类

代理类

客户类

主要优点:

        将客户和目标对象分离,以控制对象的访问

主要应用场景:

        远程代理

        虚拟代理

        安全代理

        智能指引

        延迟加载

三、行为型模式(Behavioral)11种

1、模板模式(Template)

一个抽象类定义了算法的通用框架,子类继承实现具体算法

主要优点:

        易于修改或扩展那些被复用的实现

2、策略模式(Strategy)

算法封装到一个类里面,通过组合的方式将具体算法的实现在组合对象中实现

主要优点:

        不知道对象内部细节也可以复用

        依赖性小

        可以在运行期间动态定义实现

3、状态模式(State)

在不同的状态下会有不同表现,而一个状态又会在不同的表现下转移到下一个不同的状态(状态机FSM)

主要优点:

        将状态逻辑和动作实现进行分离

4、观察者模式(Observer)

也称为发布-订阅模式,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新

5、备忘录模式(Memento)

又叫快照模式,是要在不破坏封装行的前提下,捕获并保存一个类的内部状态,这样就可以利用该保存的状态实施恢复操作

6、中介者模式(Mediator)

提供将对象间的交互和通讯封装在一个类中,各个对象间的通信不用显示声明和引用,大大降低了系统的复杂性能

主要优点:

        集中控制,便于管理

7、命令模式(Command)

将请求封装到一个对象 中,并将请求激活交给具体的处理对象操作,实现调用操作的对象和操作的具体实现者之间的解耦

8、访问者模式(Visitor)

将变更封装到一个类中,并由待更改类提供一个接收接口,这样访问者对象就可以处理元素对象上的操作

主要优点:

        可以使得对象元素在不修改自己的同时增加新的操作

9、责任链模式(Chain Of Responsibility)

将可能处理一个请求的对象链接成一个链,并将请求在这个链上传递,直到有对象处理该请求
主要优点
        极大地降低了系统的耦合性

10、迭代器模式(Iterator)

用来解决对一个聚合对象的遍历问题,将对聚合的遍历封装到一个类中进行,这样避免暴露该对象的内部表示

11、解释器模式(Interpreter)

使用一个解释器为用户提供一个一门定义语言的语法表示的解释器,然后通过这个解释器来解释语言中的句子

主要优点:

        可以提供了一种很好的组织和设计解析器的框架

        使用类来表示文法规则,因此可以很容易实现文法的扩展

相关文章:

C++设计模式(Design Patterns)

设计模式主要原则 单一职责原则(Single Responsibility Principle) 实现类要职责单一 里氏替换原则(Liskov Substitution Principle) 不要破坏继承关系 依赖倒置原则(Dependence Inversion Principle) …...

vue点击按钮收缩菜单

问题描述 VUE菜单有一个BUG,当我们点击其它按钮或者首页的时候,已经展示的一级菜单是不会自动收缩的。这个问题也导致很多开发者把一级菜单都换成了二级菜单。 错误展示 错误的效果请看下图。 解决方法 1、寻找菜单文件 因为我使用的是ruoyi的前端框…...

Vue 防止忘记的命令

创建新项目 npm init vuelatest cd <项目名> npm install npm run dev 运行项目 yarn yarn serve 这里如果我用npm install 或者npm run serve会报错&#xff0c;但是新建项目用npm就不会&#xff0c;有大佬知道为什么吗...

APACHE NIFI学习之—RouteOnContent

RouteOnContent 描述: 通过正则表达式匹配输入数据流的内容,然后将输入数据流的副本路由到正则表达式相匹配的输出数据流。 正则表达式作为用户自定义的属性添加,并以该属性名称为输出连线,其值为正则表达式所匹配数据流内容。 当用户定义的属性支持属性表达式语言时,其结…...

【C语言】【结构体的内存对齐】计算结构体内存大小,有图解

计算结构体内存大小&#xff0c;需要用到结构体内存对齐的知识 来段代码看看什么是结构体对齐&#xff1a; #include<stdio.h> struct S1 {char a;char b;int num; }; struct S2 {char a;int num;char b; }; int main() {printf("%zd\n", sizeof(struct S1))…...

Intel 700 800系网卡升级支持WOL UEFI PXE方法

Intel 700 800系网卡默认的NVM版本是不支持UEFI的&#xff0c;升级NVM也不能解决&#xff0c;需要将UEFI driver 包到NVM里。操作步骤如下&#xff1a; 1. 下载Preboot软件包&#xff0c;有Windows和Linux版本&#xff0c;本次使用Linux版本做示例。 Intel Ethernet Connecti…...

vue3 - 使用 xlsx 库将数据导出到 Excel 文件

GitHub Demo 地址 在线预览 xlsx是由SheetJS开发的一个处理excel文件的JavaScript库。它可以读取、编写和操作 Excel 文件 安装xlsx npm install xlsx --save实现一个通过的数据导出工具类 import * as XLSX from xlsx/*** description: 导出excel* param {any} dataList* p…...

机器学习,深度学习

一 、Numpy 1.1 安装numpy 2.2 Numpy操作数组 jupyter扩展插件&#xff08;用于显示目录&#xff09; 1、pip install jupyter_contrib_nbextensions -i https://pypi.tuna.tsinghua.edu.cn/simple 2、pip install jupyter_nbextensions_configurator -i https://pypi.tuna.t…...

【性能测试】jmeter连接数据库jdbc

一、下载第三方工具包驱动数据库   1. 因为JMeter本身没有提供链接数据库的功能&#xff0c;所以我们需要借助第三方的工具包来实现。 &#xff08;有这个jar包之后&#xff0c;jmeter可以发起jdbc请求&#xff0c;没有这个jar包&#xff0c;也有jdbc取样器&#xff0c;但不能…...

蓝桥等考Python组别二级007

第一部分:选择题 1、Python L2 (15分) 下面哪个不是Python的基本数据类型?( ) 布尔型整数型指针型字符串正确答案:C 2、Python L2...

Java如何解决浮点数计算不精确问题

有的时候博客内容会有变动&#xff0c;首发博客是最新的&#xff0c;其他博客地址可能会未同步,认准https://blog.zysicyj.top 首发博客地址[1] 面试题手册[2] 系列文章地址[3] 1. 什么是浮点数计算不精确问题? 在 Java 中&#xff0c;浮点数计算不精确问题指的是使用浮点数进…...

一图读懂「五度易链」企业创新服务解决方案,打造卓越营商环境!

“五度易链”紧密围绕园区企业及产业发展需求&#xff0c;基于数据积累和应用&#xff0c;创新企业服务机制&#xff0c;提升企业服务效能&#xff0c;以数字化手段为企业发展纾困解难&#xff0c;赋能企业高质量发展。并帮助园区在运营方面打破数据壁垒&#xff0c;实现数据监…...

软件工程 第一次随堂练习

以下答案是经过人工智能生成&#xff0c;个人理解得出的答案&#xff0c;若有不同见解&#xff0c;请在评论区留言或私信 说明下列需求分别属于下面的哪种类型&#xff0c;为什么&#xff1f; A.业务需求 B.用户需求 C.系统级&#xff08;功能&#xff09;需求 D.性能需求 E.质…...

在 Esp32 摄像头上实现边缘脉冲 FOMO 物体检测

轻松在 Esp32 相机上运行边缘脉冲 FOMO 物体检测的世界最佳指南。即使您是初学者 介绍 对象检测是检测图像内感兴趣的对象的任务。直到几年前,由于模型的复杂性和要执行的数学运算的数量惊人,这项任务还需要强大的计算机来完成。 然而,由于像Edge Impulse这样的平台,初学者…...

crypto:RSA

题目 利用代码跑一下解码 import gmpy2 e 17 p 473398607161 q 4511491 d gmpy2.invert(e,(p-1)*(q-1)) print(d)总结 RSA&#xff08;Rivest-Shamir-Adleman&#xff09;是一种非对称加密算法&#xff0c;常用于数据加密和数字签名。它基于两个大素数的乘积难以分解的数…...

APP产品经理岗位的具体内容(合集)

APP产品经理岗位的具体内容1 1、负责项目产品团队的管理工作&#xff0c;对项目产品团队考核目标负责; 2、全面负责“工务园”所有产品&#xff0c;全方位负责其生命周期管理; 3、按照产品管理相关的计划和规范&#xff0c;对产品版本的更新及发布负责&#xff0c;完善产品的…...

java 入门-使用eclipse、javaFX、SceneBuilder进行图形界面开发

个人是 一直在开C# CS端开发 &#xff0c; 目前 公司的软件 基本都使用了java作开发。 为了更好适应环境&#xff0c;我也只能再次学习这个陌生的开发工具。 java 的开发界面非常不友好 &#xff0c;对于我这样的初学者只能是借助插件来进行界面与后台联动&#xff0c; 上网度…...

集度汽车(武汉java)一面

hashMap底层结构&#xff0c;hash算法的好处是什么&#xff0c;为什么采用数组加链表&#xff0c;数组有哪些特性&#xff08;内存地址连续&#xff0c;查找快&#xff09;&#xff0c;怎么解决哈希碰撞&#xff0c;链地址法&#xff1b;并发编程需要注意哪些地方&#xff0c;如…...

虹科分享 | 为工业机器人解绑,IO-Link wireless无线通讯技术可实现更加轻量灵活的机器人协作

背景 机器人是一种能够半自主或全自主工作的智能机器。中国电子学会组织发布的《中国机器人产业发展报告&#xff08;2022年&#xff09;显示&#xff0c;近些年&#xff0c;我国机器人市场规模持续快速增长&#xff0c;“机器人”应用不断拓展深入&#xff0c;预计五年年均增…...

【PickerView案例10-国旗选择界面02 Objective-C预言】

一、好了,我们继续来实现这个国旗选择界面: 1.它的界面里面,是不是很简单,就一个UIPickerView,就完事儿了 然后,显示的每一行内容呢, 1)一个文字Label 2)一个图片 那大家应该有意识,它返回的应该是一个View,对吧, 代理方法里面,有一个返回View的,viewForRow…...

面试打底稿⑤ 项目一的第一部分

简历原文 抽查部分 项目描述 该项目旨在服务广州地区的快递物流&#xff0c;实现了下单、快递员取派件、订单转运单、线路规划、网点设置等功能。 责任描述 登录系统优化&#xff0c;双token三验证模式实现设置token状态、提高登录安全性的效果 模拟问答 1.能简单介绍一下…...

PSINS工具箱学习(三)让AI解释PSINS中的各种卡尔曼滤波函数

原始 Markdown文档、Visio流程图、XMind思维导图见&#xff1a;https://github.com/LiZhengXiao99/Navigation-Learning PSINS 中的 Kalman 滤波代码都在百行以内&#xff0c;没调用什么函数&#xff0c;而且通用性很强&#xff0c;拿去让 AI 解释&#xff0c;效果挺好。 文章目…...

多边形碰撞检测算法

1、AABB碰撞检测算法 AABB碰撞检测指轴对齐碰撞箱(Axis-aligned Bounding Box)&#xff0c;是分别从x轴向和y轴向进行碰撞检测的算法。即对于需要检测的物体A和物体B我们需要将其用A盒和B盒套起来&#xff0c;判断A盒和B盒在x轴向和y轴向是否发生碰撞&#xff0c;只有在x轴向和…...

【C/C++笔试练习】——printf在使用%的注意事项、for循环语句的三个条件、运算符优先级、删除公共字符

文章目录 C/C笔试练习1.%符号在printf用作格式说明符的注意事项&#xff08;1&#xff09;输出%5.3s&#xff08;2&#xff09;判断%中小数点含义 2.for循环语句的三个条件&#xff08;3&#xff09;判断循环次数&#xff08;4&#xff09;判断循环次数 3.运算符优先级&#xf…...

Linux部署elk日志监控系统

目录 一、简介 二、部署elasticsearch 2.1 安装jdk11&#xff08;jdk版本>11&#xff09; 2.2 下载安装包 2.3 授权elk用户 2.4 配置elasticsearch.yml 2.5 启动elasticsearch 三、部署logstash 3.1 启动测试 3.2 可能出现的报错 3.3 指定配置文件启动logstash 3.4 安装El…...

LINUX -SQL笔记(自学用)

1.安装 sudo apt-get install mysql-server sudo mysql -u root -p2.关系模型 在关系数据库中&#xff0c;一张表中的每一行数据被称为一条记录。一条记录就是由多个字段组成的。 每一条记录都包含若干定义好的字段。同一个表的所有记录都有相同的字段定义。 对于关系表&#…...

【Spark】win10配置IDEA、saprk、hadoop和scala

终于&#xff0c;要对并行计算下手了哈哈哈。 一直讲大数据大数据&#xff0c;我单次数据处理量大概在1t上下&#xff0c;是过亿级的轨迹数据。 用python调用multiprogress编写的代码&#xff0c;用多线程也要一个多月跑完。 我对这个效率不太满意&#xff0c;希望能快一点再快…...

MQTT 协议概要

01 MQTT协议 MQTT&#xff08;消息队列遥测传输&#xff09; 是基于 TCP/IP 协议栈而构建的支持在各方之间异步通信的消息协议。MQTT在空间和时间上将消息发送者与接收者分离&#xff0c;因此可以在不可靠的网络环境中进行扩展。虽然叫做消息队列遥测传输&#xff0c;但它与消息…...

向量数据库X云计算驱动大模型落地电商行业,Zilliz联合AWS探索并贡献成熟解决方案

近日,由Zilliz 联合亚马逊云科技举办的【向量数据库 X 云计算 驱动大模型落地电商行业】活动在上海落幕,获得业内专业人士的广泛好评。 众所周知,大模型技术的发展正加速对千行万业的改革和重塑,向量数据库作为大模型的海量记忆体、云计算作为大模型的大算力平台,是大模型…...

【vue2】解决Vuex刷新页面数据丢失的问题

最近写vue2 项目需要用到vuex, 但遇到一个问题&#xff0c;存进store里的数据刷新就丢失了&#xff0c;于是乎百度解决。将自己的感受与解决方法记录下来。 数据丢失的原因 vuex存储的数据只是在页面中&#xff0c;相当于全局变量&#xff0c;页面刷新的时候vuex里的数据会重…...