上一篇《硬设计2,刚才说桥接了,下面再说说桥接和状态,观察者,策略》
软设计,
讲了好多的硬设计了。
回忆一下。主要两个方向。
1 位置的规划,主要针对静态属性。
2 针对抽象的规划,实际就是接口和多态。
剩下的几个属性就是软规划了。
读写,私保公
这5个属性,就是对访问权限的控制,即使全部用写和公,也不会有问题。
但是代码的可读性和维护就会很困难。
这些属性的更多价值,是设计者把自己的权限控制意图表达给读代码的人的。
如果从外面看,你只关系公有属性就行了。
如是只读的变量,你就不用担心你的变更会影响到他的作用。
软设计往往更能体现设计者的功力。
其实也很简单,就是一个原则,就是尽可能的少给权限。
对于个人而言,你总希望权限越大越好,别把你的才能限制住。
但作为一个管理这则不是这样,他希望你的权利刚好够用就好。
这是限制其实也是保护,如果你真的没做过领导,那么你设计那么多的对象。
对那么多的对象而言,你就是领导,甚至是上帝。
权限不只是限制,更主要的价值在于保护。
在社会而言,规则是啥,就是限制。
试想,如果你生活在没有规则和法制的社会会怎样?
这下你应该明白对权利限制的价值了吧。
上面说的这些基本就是强调对权利限制的必要性。
如果你做个维护应该不需要我解释这么多,你就该明白对权利的限制应该是多么好的事情了。
权利多了,意味这一个代码多行为的可能。
而即使他没有那么多的行为,你在修改代码的时候,也都会有担心的。
因为他有那个权利了,你就不确定他做没做。
这时候会浪费很多多余的分析和担心。
一句话吧,最小的权限会另系统更稳定,维护更容易。
读写,私保公。
上面少了一个静态熟悉。
静态这个熟悉,有名称看好像是是否可变。
但实际上他有夸域的能力,如果你给他一个共有的属性,他就成为了全局变量了。
今天的东西是没有时间概念的,他的生命周期就是极大。
相当于系统里面长生不老的级别。
那么静态的具体价值是什么呢。
数据=变量,这里我都用变量这个词来说数据吧。
变量的定义位置,变量定义的位置决定了他的生命周期
1 全局:长生不老,除非系统退出。
2 类内:也就是成员变量。
3 函数内:临时变量,生命周期只限于调用的瞬间。
上面从位置的角度说了变量的生命周期。
具体说是位置决定了生命周期。
能够长生的只有全局变量。
如果引入了静态这个属性呢。
那就想贴了面试金牌一样,也长生了。
静态的价值是长生。
会到面向对象在说静态的价值吧。
对于类来说,有两种资源。
1.类基别的:可以用类调用
2.对象级别的:必须用对象调用
这一比就明显了,类是静态的,系统一运行就有,长生级别。
对向呢,只有使用的时候才有,非长生的。
这时候对变量就可以做如下区分了。
共全部对象使用的数据:可以设置为静态的
共每个对象使用的数据:设置为非静态的。
如果供全部对象使用的数据设置为非静态的行不呢?
可以,但是浪费了内存。
这也就是静态在面向对象设计中的价值吧。
关于上面的几个属性:读写,私保公,静。
在设计中如果细致的思考是有很多技巧的。
其实也可以简单说,用好了上面的6个属性,应该是不错的代码。
技巧也无非就是恰当的使用他们吧。
软设计
最新推荐文章于 2022-10-13 11:39:23 发布