首页
学习
活动
专区
圈层
工具
发布

Go语言中常见100问题-#4 Overusing getters and setters

getter和setter是通过在未导出的对象字段上提供导出方法来进行数据封装的方法,在Java语言中使用的比较多,但在Go语言中,没有自动支持它们,所以使用getter和setter访问struct字段不是强制性的...,也不是惯用的做法。...对获取或设置字段相关的行为进行了封装,支持以后添加新功能。例如,验证字段、返回计算值或将对字段的访问封装在互斥体内。 隐藏了内部实现逻辑,使得外部在获取内容方面有更大的灵活性。...我们应该务实一些,努力在效率和遵循其他编码范式中有被认为无可争辩的习语之间(像在Java语言为对象添加getter和setter方法)找到适当的平衡。...但是,如果发现需要getter和setter,或者在保证向前兼容的同时预见到未来的需求,这种情况下使用getter和setter没有问题。

54920
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Vue前端篇—— Pinia 的 Getters 方法详解

    Pinia 作为一个轻量级、简单易用的状态管理库,受到了越来越多开发者的青睐,在前面也是讲解Pinia 的一些基本使用的方法,本文将介绍另一个知识点getters ,getters 方法是 Pinia...一、Getters 概念在 Pinia 中,getters 是一种特殊的函数,用于处理和计算 state 中的数据。...当我们需要对 state 中的数据进行一些复杂的操作,或者需要得到一些派生状态时,就可以使用 getters。getters 方法接收 state 作为参数,并返回一个新的值或对象。...在实际开发中,我们可以根据需要配置多个 getters 方法,以满足不同的业务需求。同时,getters 方法的使用也使得我们的代码更加清晰和易于维护。...需要注意的是,getters 方法是基于它们的依赖进行缓存的。只有当它的依赖值发生改变时,它才会重新计算。因此,在使用 getters 方法时,我们应该尽量避免不必要的计算,以提高应用的性能。

    3.4K20

    Java 中的中介模式(Mediator Pattern)

    在其他模块中复用 Button 类会很困难。此外,如果我们需要在系统中添加第二个电源,那么我们必须修改 Fan 类的逻辑。 4.2....添加中介模式 现在,让我们实现中介模式以减少我们类之间的依赖,是代码更具可复用性。...fan; private PowerSupplier powerSupplier; // constructor, getters and setters...如果我们将来需要添加第二个电源,我们需要做的只是更新 Mediator 的逻辑;Button 和 Fan 类保持不变。 这个示例展示了我们可以轻松的分离依赖的对象并使我们的系统更易于维护。 5....相反的,我们应该后退一步,重新思考对类建模的方式。 和所有其他模式一样,我们需要在盲目实现中介模式前考虑我们的特殊用例。 6. 总结 在本文中,我们了解了中介模式。

    50010

    独家 | 9个可以显著优化代码的Python内置装饰器

    有许多很棒的内置Python装饰器使编码变得更为容易,只使用一行代码便可向当前的函数或类中添加复杂的函数。 行胜于言,接下来,来看看精心挑选的9个函数装饰器,它将展示Python的优雅。 1....@property: 为Python类设置处理程序和设置程序 Getters和Setters是面向对象编程(OOP)中的重要概念。...对于类中的每个实例变量,getter方法返回其值,而setter方法设置或更新其值。鉴于此,Getters和Setters又分别称为Accessors和Mutators。...不同的OOP语言有不同的机制来定义获取器getters和setters。在Python中,可以简单地使用@property装饰器。...@classmethod:定义新的Python类方法 Python类中有三种方法类型: Instance methods(实例方法):绑定一个实例的方法,利用这种方法可以访问和修改实例数据。

    86820
    领券