Clojure与面向对象编程中的状态管理:以抱抱僵尸为例
1. 形而上学的基本问题
形而上学试图从最广泛的层面回答两个基本问题:
- 存在什么?
- 它是什么样的?
为了揭示Clojure和面向对象(OO)语言之间的差异,我们以抱抱僵尸为例。抱抱僵尸与普通僵尸不同,它不想吞噬你的大脑,只想和你拥抱,甚至闻闻你的脖子,这种不死、蹒跚、腐朽的状态显得格外悲惨。
2. 面向对象的形而上学
在面向对象的形而上学中,抱抱僵尸被视为世界中存在的一个对象。这个对象具有可能随时间变化的属性,但仍被视为一个单一、恒定的对象。
例如,在Ruby中可以这样建模和与抱抱僵尸交互:
class CuddleZombie
# attr_accessor 是为列出的实例变量创建getter和setter的简写方式
attr_accessor :cuddle_hunger_level, :percent_deteriorated
def initialize(cuddle_hunger_level = 1, percent_deteriorated = 0)
self.cuddle_hunger_level = cuddle_hunger_level
self.percent_deteriorated = percent_deteriorated
end
end
fred = CuddleZombie.new(2, 3)
fred.cuddle_hunger_level # => 2
fred.percent_deteriorate
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



