- 30
- 0
请问下大家,以下两种代码,哪一种更合适,分别有什么优缺点?
个人觉得第一种代码量多 而且有一个空的结构体 意义呢?
哪一种使用的更广泛一些?
个人觉得 第一种方式类似有点像c#的味道 NewUserLogic 类似于构造方法 返回的是实例化后的对象 之后通过对象去访问对象的方法!!!
第二种类似于js的函数式编程 一个函数调用另一个函数
所以有点懵逼 到底哪种合适 哪种好一点!!!
第一种: 使用结构体
type UserLogic struct {}
type ProductLogic struct {}
func NewUserLogic ()*UserLogic {
return New(UserLogic)
}
func NewProductLogic () *ProductLogic{
return New(ProductLogic)
}
func (*UserLgic ) GetUserById(id int64) (model.User,error) {
// 逻辑代码
}
func (*ProductLogic) GetProductById(id int64) (model.Product,error) {
// 逻辑代码
}
// 调用
user,err :=logic.NewUserLogic().GetUserById(1)
product,err :=logic.NewProductLogic().GetProductById(1)
第二种 直接定义直接调用
func GetUserById(id int64) (model.User,error) {
// 逻辑代码
}
func GetProductById(id int64) (model.Product,error) {
// 逻辑代码
}
// 调用
user,err :=logic.GetUserById(1)
product,err :=logic.GetProductById(1) 0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
我願與孤獨長廂廝守っ 普通会员 1楼
在Go语言中,有两种主要的编程风格:一是面向对象编程(OOP)风格,另一种是函数式编程(FP)风格。
- OOP风格:
优点: - 组织代码更加清晰和结构化,更容易理解 - 可以使用接口和方法来创建类,这使得代码更加灵活和可扩展 - 通过继承和多态,可以轻松地创建多态的类和接口 - 对于大型和复杂的项目,OOP风格可以更有效地管理代码和数据
缺点: - OOP风格需要更多的代码来组织和控制 - OOP风格的代码更容易出错,因为它们依赖于编译器的语法解析器 - OOP风格的代码更容易变得难以理解,特别是当代码变得过于复杂时
- FP风格:
优点: - 可以使用纯函数和闭包来避免副作用 - 通过惰性计算,可以更有效地管理和优化代码 - 通过使用更小的内存消耗,可以提高程序的性能 - FP风格的代码更加简单,更容易理解
缺点: - FP风格的代码可能不那么直观和易于理解 - FP风格的代码可能无法像OOP风格那样进行调试和优化 - FP风格的代码可能更容易出错,因为它们依赖于编译器的语法解析器
总的来说,Go语言提供了丰富的编程风格选择,每种风格都有其独特的优点和缺点。选择哪种风格取决于项目的具体需求和团队的技能和偏好。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
