`
王斌_code
  • 浏览: 34152 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

面向对象状态的编程思想

阅读更多
基于面向对象的思想,在我们所考虑的问题中,所有的问题都是对象,对象可以由一个个的小对象组成,即对象的组合、聚合等关系。为了更加抽象或者更加容易编写我们的代码,我们首先基于以下两个假设
1.对象的行为(方法)都是为了改变对象的属性(或称为对象的状态),而且只能改变对象的属性,任何不改变对象状态的行为都是无意义的,或者称可被行为包含的功能
2.程序的最终结果都是对象的不同状态下的展示,即在某一时刻基于对象的即时状态

基于上述两个所设,我们可以得到一个面向对象状态的编程思想,首先,我们需要对上述1的假设做进一步的阐述:
基于假设2,程序的结果是对象的即刻展示,所有,有些对象要有一个展示自己的状态的方法,此方法可以将对象的所有属性展示给观察者,但此方法违背了假设1,因为它不需要修改对象的状态。因此,我们对假设1稍做修改,即除了展示方法(我们称超级方法)外,所有行为...,基于上述假设,我们根据具不具有展示方法为依据把所有对象分为两类:可展对象、不可展对象
它们可以有如下的关系


面向状态思想解决了一个问题,他把所有的东西都视为对象,所有要解决的问题都视为对象,对象是靠一种组合等方式来构建,由小对象构建成大对象,对象的状态是所有属性的集合。比如我们来说一台电脑,它就是一个对象,它是由显示器,键盘等构成的,而显示器、键盘等又是对象。
我们来看一下现实生活中,面向状态的思想的体现:
在现实生活中,每个事物都可以看作是对象(实例),每个事物都有其在不同时刻的状态,我们的现实世界,只不过是有些事物通过一个光来展现出来的,而光即是一个展示方法,这些被展示出来的事物,都具有展示的方法,它们就是可展对象,而有些对象,是隐藏在有些对象之内的,它就不可展。可展对象都被一个展示方法(光)展现


分享到:
评论
Global site tag (gtag.js) - Google Analytics