go语言面向编程思想

简介: go语言面向编程思想

面向思想

面向对象:将功能封装进对象,是具有功能的对象,解决问题需要哪些对象,将功能类似的对象封装在一起,用的时候找到对应


完成需求:找一个具有所需功能的对象,如果对象不存在,就去构建一个,目的简化开发并提高复用


面向过程:功能行为,解决问题需要那些步骤


面向对象是相对面向过程而言,他们都是一种思想;要做一件事情思考:是什么,为什么,怎么做,一步步去实现


通俗一点说:面向过程是要我们一步步去实现最终过程,面向对象是直接通过封装好的直接使用,达到最终结果


转到我们实际应用中:对于一个项目,要完成,首先从底层开始,从具体到一个类开始实现,搭建一个类,利用类去创建对象,对象是类的存在,面向对象首先需要去考虑创建哪些类,再利用类去创建多少个对象


类的实现和对象的创建

类是描述事务的属性和行为方式,go中的结构体刚好解决该问题,通过直接定义变量来接收结构体并且赋值,来实现对象的创建,通过首字母大小写来控制公私有


面向对象特征

封装,继承,多态


封装性:

我们通过首字母大小写对我们想公开或隐藏的数据进行公私,例子:我们通过公有化一个结构体,私有化它的内部变量,并公有化一个方法来进行对其变量进行赋值,对于其他接收这个结构体的对象而言,不能直接对结构体中的变量进行赋值,而是在创建的时候创建空结构体或者使用new来进行创建,通过其结构体实现的公开方法来进行对其变量进行赋值


封装的目的:防止外部获得管理权,将管理权赋予内部,同时外部只能通过其结构体的方法来进行调用或者赋值其变量,安全


继承性:

结构体继承:go语言中秉持组合大于继承,即结构体内嵌结构体,以此来实现继承,同时如果有名称重复,则考虑就近原则

方法继承:go中结构体内嵌结构体,子类同时还可以实现继承父类的方法,如果方法同名的话,子类还可以对方法进行重写,通知书还可以还可以调用父类的方法。

无论是属性继承还是方法的继承,子类都只能访问父类,父类不能访问子类


多态性

多态就是某一类事务的多种形态

go语言中通过接口来来实现多态,编写就扣就是一些抽象的性行为的合集,从而和实现接口的类区分开来

使得代码可以分散在不同的对象


go中通过byte来保存单字节,字符 通过rune来保存汉字

相关文章
|
7天前
|
存储 JSON 监控
Viper,一个Go语言配置管理神器!
Viper 是一个功能强大的 Go 语言配置管理库,支持从多种来源读取配置,包括文件、环境变量、远程配置中心等。本文详细介绍了 Viper 的核心特性和使用方法,包括从本地 YAML 文件和 Consul 远程配置中心读取配置的示例。Viper 的多来源配置、动态配置和轻松集成特性使其成为管理复杂应用配置的理想选择。
24 2
|
11天前
|
JavaScript Java Go
探索Go语言在微服务架构中的优势
在微服务架构的浪潮中,Go语言以其简洁、高效和并发处理能力脱颖而出。本文将深入探讨Go语言在构建微服务时的性能优势,包括其在内存管理、网络编程、并发模型以及工具链支持方面的特点。通过对比其他流行语言,我们将揭示Go语言如何成为微服务架构中的一股清流。
102 53
|
5天前
|
Go 索引
go语言中的循环语句
【11月更文挑战第4天】
13 2
|
5天前
|
Go C++
go语言中的条件语句
【11月更文挑战第4天】
16 2
|
10天前
|
Ubuntu 编译器 Linux
go语言中SQLite3驱动安装
【11月更文挑战第2天】
32 7
|
10天前
|
关系型数据库 Go 网络安全
go语言中PostgreSQL驱动安装
【11月更文挑战第2天】
39 5
|
10天前
|
安全 Go
用 Zap 轻松搞定 Go 语言中的结构化日志
在现代应用程序开发中,日志记录至关重要。Go 语言中有许多日志库,而 Zap 因其高性能和灵活性脱颖而出。本文详细介绍如何在 Go 项目中使用 Zap 进行结构化日志记录,并展示如何定制日志输出,满足生产环境需求。通过基础示例、SugaredLogger 的便捷使用以及自定义日志配置,帮助你在实际开发中高效管理日志。
26 1
|
9天前
|
程序员 Go
go语言中的控制结构
【11月更文挑战第3天】
85 58
|
8天前
|
监控 Go API
Go语言在微服务架构中的应用实践
在微服务架构的浪潮中,Go语言以其简洁、高效和并发处理能力脱颖而出,成为构建微服务的理想选择。本文将探讨Go语言在微服务架构中的应用实践,包括Go语言的特性如何适应微服务架构的需求,以及在实际开发中如何利用Go语言的特性来提高服务的性能和可维护性。我们将通过一个具体的案例分析,展示Go语言在微服务开发中的优势,并讨论在实际应用中可能遇到的挑战和解决方案。
|
9天前
|
存储 编译器 Go
go语言中的变量、常量、数据类型
【11月更文挑战第3天】
26 9