关注设计上的意义,而不是实现细节
2012-11-26 15:47
295 查看
程序语言有很多语法,让人无所适从,是否一定要精通所有语法才能编程?不见得,因此,我们应该注重语法的设计上的意义,而不是语法自身的细节。设计上的意义,就是你想怎样去运用这个语法,这个语法可以用来干什么。语法只是一种基础,而不是设计要素,要成成为设计要素,就要对语法进行认识和组织。你可能认识到变量的各种特性,但是你却没有发现变量实际用来做什么,你可能清楚结构的各种细节,但你又不清楚结构用来表达什么内容。因此这就是读死书。我们要组织其自己的设计元素,才能加强我们的表达力,通过理解设计上的意义,才能够快速的组织好程序设计,而不是纠结于语法细节。
比如函数,可以理解为语法上的函数,也可以理解为一种通信渠道(设计意义),一种操作(设计意义),并非说你知道函数的语法,自然而然就会发觉它们有这些公用,这需要看透实质的眼光。每个人的设计要素都有差别,这在于他对语法理解的不同。比如对于采用面向过程的人来说,就和面向对象的人的设计元素不同。
闲话少说。不同语法在我看来的设计用途如下:
1.常量,用来取代固定的数值
2.变量,用来存放数据
3.结构,用来定义新的数据类型
4.类,用来定义抽象数据类型,包含操作函数。(为何用类,因为类【隐喻】封装数据的访问,有别一般的数据类型)
5.类,用来定义数据集合。
6.数组,用来定义数据集合。
7.类,用来定义状态和操作的单元,也就是对象。
8.接口,用来交互调用对象。
9.成员函数,用来修改对象状态。
10.函数,用来实现算法,无副作用,无外部依赖。
11.函数,用来实现流程。
12.事件,用来通信。
13.委托,用来通信。
14.泛型,用来定义宽范围的对象类型。
15.linq,用来对集合进行筛选(无修改)。
16.多线程,用来同步任务
17.循环语句,用来迭代
18.If语句,用来建立不同分支
19.函数调用自身,建立递归关系
比如函数,可以理解为语法上的函数,也可以理解为一种通信渠道(设计意义),一种操作(设计意义),并非说你知道函数的语法,自然而然就会发觉它们有这些公用,这需要看透实质的眼光。每个人的设计要素都有差别,这在于他对语法理解的不同。比如对于采用面向过程的人来说,就和面向对象的人的设计元素不同。
闲话少说。不同语法在我看来的设计用途如下:
1.常量,用来取代固定的数值
2.变量,用来存放数据
3.结构,用来定义新的数据类型
4.类,用来定义抽象数据类型,包含操作函数。(为何用类,因为类【隐喻】封装数据的访问,有别一般的数据类型)
5.类,用来定义数据集合。
6.数组,用来定义数据集合。
7.类,用来定义状态和操作的单元,也就是对象。
8.接口,用来交互调用对象。
9.成员函数,用来修改对象状态。
10.函数,用来实现算法,无副作用,无外部依赖。
11.函数,用来实现流程。
12.事件,用来通信。
13.委托,用来通信。
14.泛型,用来定义宽范围的对象类型。
15.linq,用来对集合进行筛选(无修改)。
16.多线程,用来同步任务
17.循环语句,用来迭代
18.If语句,用来建立不同分支
19.函数调用自身,建立递归关系
相关文章推荐
- 关注设计上的意义,而不是实现细节,从今天开始更多的关注思想
- 为什么MVC不是一种设计模式? ---比较Backbone和Ext4.x在MVC实现上的差异
- iOS-字典转双模型的实现过程中需要关注的细节
- 无图言屌?YYImage 设计思路,实现细节剖析
- VS2005的类设计器(Class Designer)中,如果显示让类继承接口,而不是实现接口?
- 0.2-设计模式怎么样解决设计问题-针对接口编程,而不是针对实现编程
- 关注各种高级语言虚拟机(high-level language virtual machine,HLL VM)的设计与实现,泛化至各种高级语言的运行时的设计与实现,也会涉及动态编译、GC、动态语言的编
- 基本上,把switch,用设计模式代替,肯定是bug和过度设计。想想,本来修改一个文件几行代码可以解决的问题,变成修改3-6个类才能实现一样的功能。不是傻是什么?
- 面向对象设计原则六 - 针对接口编程,而不是针对实现编程
- 设计模式之Programming to an Interface, not anImplementation 程序指向接口,而不是实现
- 【工作随笔】Task卡,也应该首先关注需求而不是实现
- 实现两个不同高度的UILabel的文字底部相对于下划线对齐。不是很简单吗? 是吗?你敢按你常规方法试试让你那火眼金睛的设计、美工去瞧瞧???
- 设计模式之Programming to an Interface, not anImplementation 程序指向接口,而不是实现
- SNS,微博 好友关注和推送功能的数据库设计是怎么实现的底层设计?
- 为什么MVC不是一种设计模式? ---比较Backbone和Ext4.x在MVC实现上的差异
- 用C++重写String类,实现并不是最完美的,欢迎指正补充!后续还有更多类似的实现放上来, 欢迎关注!!!
- 面向对象设计原则六 - 针对接口编程,而不是针对实现编程
- 面向对象设计原则六 - 针对接口编程,而不是针对实现编程
- evpp设计细节系列(1):利用 enable_shared_from_this 实现一个自管理的定时器
- TDD:先使用你的设计而不是先实现你的设计