设计模式 模式golang

介绍Vue router的history模式以及如何配置history模式

# 引言 Vue router给我们提供了两种路由模式,分别是hash模式和history模式。其中默认是使用hash模式,即URL中带有一个#符号,但是处于业务或个人喜爱的差别,Vue router也提供了history模式。但是由于Vue是单页SPA应用,所以每个路由并没有对应的html文件。 ......
history 模式 router Vue

Dockerfile加载cache提速制作golang业务镜像

Dockerfile # syntax=docker/dockerfile:1.2 FROM golang-1.18.5:ubuntu-22.04 AS builder ENV CGO_ENABLED 0 ENV GOOS linux ENV GOPROXY https://goproxy.cn,d ......
Dockerfile 镜像 业务 golang cache

Dockerfile制作golang-ubuntu_22.04基础镜像

Dockerfile FROM ubuntu:22.04 ADD go1.18.5.linux-amd64.tar.gz /usr/local ENV PATH=/usr/local/go/bin:$PATH 生成镜像 # docker build -f Dockerfile -t golang-1 ......

面向对象、设计原则、设计模式、编程规范、重构五者的关系

最经典的设计模式书籍是GoF的《设计模式》,他的中文全称叫《设计模式:可复用面向对象软件的基础》,为什么他在标题中会特意提到“面向对象”呢? 面向对象 针对面向对象,我们需要掌握7点。 面向对象的四大特性:封装、抽象、继承、多态; 面向对象和面向过程编程的区别与联系; 面向对象分析、设计、编程; 接 ......
设计模式 对象 原则 模式

APP页面设计软件大全,设计师必备这10款

APP页面设计是APP实施过程中的关键步骤,APP页面设计是不是别具一格,取决于消费者对APP最直观的视觉效果分辨。 要创建一个令人惊讶的APP页面设计,一个高效率的APP界面设计软件是不可缺少的。 本文列出10款最流行的APP界面设计软件,并逐一展开了深入分析。 1.即时设计 即时设计是一款免费的 ......
设计软件 设计师 页面 大全 软件

C语言单例模式

#### 单例模式的定义 ​ 单例模式的需求是保证在代码的整个运行期间,某种数据类型只有一个唯一的实例子。并且提供一个全局的访问接口。 我们可以从两个角度来理解单例模式 - 数据类型有且仅可以创建一个实例,编程人员不可以的随意的定义的此类型的实例。我们必须限制这种数据结构的创建。 - 访问接口是全局 ......
语言 模式

软件设计 day1

# Software Design Methodology 软件设计方法学 > 中国石油大学(华东)2022-2023-3 国际周课程 Advanced software design 张晓东老师邀请在日本广岛大学工作的刘少英老师(华裔)进行授课 > 刘少英老师的介绍: Shaoying Liu ( ......
软件 day1 day

golang中的sync.Map

golang中,同时读写map是线程不安全的,可能会出现panic错误: fatal error: concurrent map read and map write Go语言在 1.9 版本中提供了一种效率较高的并发安全的 sync.Map,sync.Map 和 map 不同,不是以语言原生形态提 ......
golang sync Map

设计模式之类之间的关系和六大原则

1 类之间的关系 类与类之间的关系大概有6种,要看懂UML图,首先需要了解这几种关系。 1.1 继承关系 继承指的是一个类(称为子类,子接口)继承另外的一个类(成为父类,父接口)的功能,并可以增加它自己的新功能的能力。在UML类图设计中,继承用一条带空心三角箭头的实线表示,从子类指向父类,或者子接口 ......
设计模式 原则 之间 模式

linux环境安装golang

在使用pprof工具分析性能时,发现我们的环境上默认没有装go,所以执行不了go tool pprof命令,于是自己手动装了下。步骤如下: 首先下载一个对应系统架构的golang包,这里我用的是arm包,装的1.14.12版本。(见附件)。在环境上创一个个人目录,把包传上去,然后执行以下命令解压到/ ......
环境 golang linux

Golang中的Channel(一)

Golang在并发编程上有两大利器,分别是channel和goroutine。Golang中有一句名言:“使用通信来共享内存,而不是通过共享内存来通信”。这句话有两层意思,Go语言确实在sync包中提供了传统的锁机制,但更推荐使用channel来解决并发问题。这里先对Channel做一个基本的介绍, ......
Channel Golang

Golang中的Channel(二)

上篇介绍了Channel是什么以及它的类型,这篇总结一下Channel的用法。 基本语法 (1) 声明channel 声明channel的语法格式为: var ChannelName chan ElementType 与其他变量声明不同的是,在类型前面多了一个chan关键字。ElementType指 ......
Channel Golang

golang中的空切片和nil切片

Golang中的切片是很基本的数据结构,它的底层是一个数组,表层是一个包含三个变量的结构体: type slice struct { array unsafe.Pointer //指针,指向底层的数组 length int //切片的长度 capcity int //切片的容量 } 当把一个切片赋值 ......
golang nil

Docker安装Nacos并以单例模式运行

Nacos单例模式运行使用嵌入式数据库即可,这里不依赖于mysql。拉取指定版本Nacos镜像: docker pull nacos/nacos-server:2.0.3 查看镜像列表: docker images 以单例模式启动: docker run -d --name nacos -p 884 ......
模式 Docker Nacos

C++ 设计模式之外观模式

设计模式之外观模式 外观模式主要是为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得该子系统更加容易使用。说白了就是一堆系统或类实现了些复杂的功能,然后为了方便使用,又新建了一个类把这些类实现的功能封装起来了。该模式不难理解。其UML图如下: 在Facade类提供了一堆调 ......
模式 设计模式 外观

C++ 设计模式之建造者模式

设计模式之建造者模式 建造者模式,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 其UML图如下: 简单理解就是Builder中定义了创建Product各个部分的接口。ConcreteBuilder中具体实现了创建Product中的各个部分的接口,就是具体的建造者。Dir ......
模式 设计模式

C++ 设计模式之抽象工厂模式

设计模式之抽象工厂模式 抽象工厂模式,提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。其UML图如下: 结合上图我们来理解一下抽象工厂模式的定义。提供一个创建一些列相关或相互依赖对象的接口,而无需指定它们具体的类。在上图中一系列相互依赖或相关的对象可以理解为ProductA,Pr ......
模式 设计模式 工厂

C++设计模式之观察者模式

设计模式之观察者模式 观察者模式定义了一种一对多的依赖关系,让多个观察者同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。其UML图如下: 在ConcretSubject内部有一个Observer的列表,当Subject的状态发生改变时,会通知列表内 ......
模式 观察者 设计模式

C++ 设计模式之模板方法模式

设计模式之模板方法模式 模板方法模式,定义一个操作中的算法的股价,而将一些步骤延迟到了子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。说白了就是有一个算法有很多部分,这个算法在基类中已经定义好了。而算法中的各个部分都写成各个成员函数了。然后在子类中可以覆盖这些成员函数 ......
模式 设计模式 模板 方法

2D设计为什么选择SuperWORKS IA?

利驰作为专注于持续为电气工程师提供更高效更友好软件的工业互联网SaaS企业,非常关注用户体验。根据多年的软件开发经验,并且秉承“成为工程师最喜爱的设计软件”这一理念,立足于用户的实际需求,经过研发团队不断尝试和升级,研发了专为自动化行业用户使用的支持IEC等多个标准的2D设计软件SuperWORKS ......
SuperWORKS IA

JAVA设计模式之模板模式

设计模式 设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式 ......
模式 设计模式 模板 JAVA

C++ 设计模式之原型模式

设计模式之原型模式 原型模式是用原型实例指定创建兑现的种类,并且通过拷贝这些原型创建新的对象。原型模式说白了其实就是有一个把自己拷贝一下的方法。该模式很好理解,该模式独特地方不是类与类之间的关系,更多的是从语义上理解,只是实现了一个接口而已。 其UML图如下: 示例代码如下: 1 // Protot ......
模式 设计模式 原型

C++ 设计模式之工厂方法模式

设计模式之工厂方法模式 工厂方法模式,定义一个用于创建对象的接口,让子类决定实力化哪一个类。工厂方法使一个类的实例化延迟到其子类。其UML图如下: 这里要区分一下工厂方法模式与简单工厂模式的区别。简单工厂模式需要在工厂类中判断要生产什么类型的对象。工厂方法模式则把这部分工作交给了客户端。每一种类对象 ......
模式 设计模式 工厂 方法

代理模式-14

### 概述 代理模式 (Proxy/Surrogate Pattern) 给某个对象一个代理,由代理控制对原对象的使用。 **优点**:一定程度降低耦合度。 **缺点**:实现复杂。 ```java interface Subject { void a(); } class Real implem ......
模式 14

C++ 设计模式之策略模式

设计模式之策略模式 策略模式定义算法家族,分别封装。它们之间可以相互替换,让算法变化,不会影响到用户。优点:适合类中的成员方法为主,算法经常变动;简单了单元测试(因为每个算法都有自己的类,可以通过自己的接口单独测试)。缺点:客户端需要做出判断。 其UML图如下: 策略模式和简单工厂模式非常相似。具体 ......
模式 设计模式 策略

C++ 设计模式之装饰模式

设计模式之装饰模式 装饰模式,动态地给一个对象添加一些额外的职责(不一定重要的功能,只是偶然一次执行),就增加功能来说,装饰模式比生成子类更为灵活。其UML图如下: ConcreteComponent定义了一个具体的对象,ConcreteDecorator类是用来装饰ConcreteComponen ......
模式 设计模式

C++ 设计模式之状态模式

设计模式之状态模式 状态模式,当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了类本身。状态模式主要解决的时当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。其UML图如下: 在以上UML图中,Conte ......
模式 设计模式 状态

C++ 设计模式之适配器模式

设计模式之适配器模式 适配器模式,将一个类的借口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适配器模式主要解决的是数据和行为都正确,但接口不符合的情况。该模式很好理解,其UML图如下: 示例代码如下: 1 // AdapterModel. ......
模式 设计模式 适配器

AI推理实践丨多路极致性能目标检测最佳实践设计解密

摘要:基于CANN的多路极致性能目标检测最佳实践设计解密。 本文分享自华为云社区《基于CANN的AI推理最佳实践丨多路极致性能目标检测应用设计解密》,作者: 昇腾CANN 。 当前人工智能领域,最热门的无疑是以ChatGPT为代表的各种“新贵”大模型,它们高高在上,让你无法触及。但在人们的日常生活中 ......
极致 性能 目标

C++ 设计模式之迭代器模式

设计模式之迭代器模式 迭代器模式,提供一种方法顺序访问一个聚合对象中各个元素,而不暴露该对象的内部表示。该模式很好理解,C++中的迭代器应该都用过,和那个差不多。其UML图如下: ConcreteIterator内部有一个聚合对象的引用(指针),而ConcreteAggregate依赖于Concre ......
模式 设计模式