相关疑难解决方法(0)

你使用get/set模式(在Python中)吗?

使用get/set似乎是Java中的常见做法(出于各种原因),但我几乎看不到使用它的Python代码.

为什么在Python中使用或避免使用get/set方法?

python getter-setter

75
推荐指数
6
解决办法
9万
查看次数

Allen Holub写道"你永远不应该使用get/set函数",他是否正确?

Allen Holub写了以下内容,

如果没有一些耦合,你就无法拥有一个程序.尽管如此,您可以通过盲目地遵循OO(面向对象的)规则来最大限度地减少耦合(最重要的是对象的实现应该完全隐藏在使用它的对象之外).例如,对象的实例变量(非常量的成员字段)应始终为私有.期.没有例外.永远.我是认真的.(您可以偶尔有效地使用受保护的方法,但受保护的实例变量是令人厌恶的.)

这听起来很合理,但他继续说,

你不应该出于同样的原因使用get/set函数 - 它们只是过于复杂的方式使字段公开(尽管返回完整对象而不是基本类型值的访问函数在返回对象的情况下是合理的class是设计中的关键抽象).

坦率地说,这对我来说听起来很疯狂.

我理解信息隐藏的原理,但是如果没有访问器和更改器,你根本就不能使用Java bean.我不知道如何在模型中没有访问器的情况下遵循MVC设计,因为模型不能负责渲染视图.

但是,我是一名年轻的程序员,而且我每天都在学习更多关于面向对象设计的知识.也许拥有更多经验的人可以在这个问题上权衡.

Allen Holub的文章供参考


相关问题:

language-agnostic oop getter setter immutability

50
推荐指数
7
解决办法
8816
查看次数