+ -
当前位置:首页 → 问答吧 → 请问OOP设计高手,什么时候该用静态成员方法,什么时候该用普通成员方法?可否有相应的设计原则?

请问OOP设计高手,什么时候该用静态成员方法,什么时候该用普通成员方法?可否有相应的设计原则?

时间:2010-01-07

来源:互联网

请问OOP设计高手,什么时候该用静态成员方法,什么时候该用普通成员方法?可否有什么设计原则呢?

作者: mofe   发布时间: 2010-01-07

我来做个比喻吧,就像一个木匠做木工活,什么时候用大块木板,什么时候用小块木板,这必须在有足够经验的前提下在具体工作中才能看得出来。不知道比喻得恰不恰当,楼主姑且看看吧

作者: yangfuliang   发布时间: 2010-01-07

唉,楼上的回答不满意。我来总结一下我的认识吧~ 也许有不对的地方,还请多指教

相较于以前的编程手法,参数化身为属性,函数化身为方法,由于类本身的封装特性和结构,衍生出访问器和设置器还有构造函数。
--验证函数库中的验证函数化身为类(静态)验证方法,返回bool or string
--多行数据获取以前是返回数组,现在同样变化为类的(静态)数据获取方法,这里(返回对象)
  不同是,在静态方法中构建自身对象来返回保存这些相应属性和处理方法的对象,这样减少了以前在函数中参数传递的过程
--数据的处理函数化身为类的(普通成员方法),可以操作上面步骤中实例化后对象的属性(也可以理解为传递的参数),
  返回 bool or string

##这里是设置不同的变量类型(数字或数组)手段,配合使用,访问器/设置器来保护属性的安全
##类属性的编译器访问规则(猜测),假设属性字段为私有
    1。编译武器检查类成员访问位置是否在类内。
    2.true,编译器直接检查类内了否存在相应属性,若不存在,
            编译器检查类可否有访问器,若有的话,使用类的访问器访问类的成员属性,若还不存在,报错!
      false,编译器检检查类可否有访问器,若存在访问器,即使用访问器访问私有属性,
              若不存在,访问器即报错(不允许在类外访问类的私有成员属性)!

作者: mofe   发布时间: 2010-01-13