封装

封装是什么?

这和带兵打仗是类似的,班长需要知道每个战士的姓名/性格/特长,否则就不知道该派谁去对付对面山坡上的狙击手;而连长呢,只需知道自己手下哪个班/排擅长什么就行了,然后安排他们各自去守一段战线;到了师长/军长那里,他更关注战场形势的转变及预期……没有这种层层简化、而是必须直接指挥到每个人的话,累死军长都没法指挥哪怕只是一场形势明朗的冲突——光一个个打完电话就能把他累成哑巴。

反过来也对:军长压根就不应该去干涉某个步兵班里、几个大头兵之间的战术配合;这不仅耽误他行使身为军长的职责,也会干扰士兵们长久以来养成的默契。他的职责是让合适的部队在合适的时机出现在合适的战场,而不是一天到晚对着几个小兵指手画脚、弄的他们无所适从。

约束各单位履行各自的职责、禁止它们越级胡乱指挥,这就是封装。

高级编程语言:越是高级的编程语言,替我们干的事情越多,我们要实现一个软件功能,代码量越少。
当我们用高级编程语言做程序的设计时候,可以把精力更多的考虑软件功能如何实现。

开发效率:
php做了一个星期,你用C语言三个月,你用汇编语言做了2年。
从基层干起。






把一些优秀程序员已经封装好的代码功能,我们去研究去学习,甚至自己微创新,尝试自己也重新封装一次。
这个过程在业内有一个说法:
“造轮子。




mycode:
mov ax,0x07c0
mov ds,ax ;初始化数据段寄存器

mov ax,0xb800
mov es,ax ;初始化显存段寄存器


mov ax,0x0;初始化堆栈段寄存器
mov ss,ax
mov sp,ax

;三个数放到哪里?  用什么指令完成这个功能。   三个数相加的结果放到哪里?
;第一个数我们放到cx,第二个数,我们放到dx,第三个数,我们放到bx,最后相加的结果,我们放到ax
;3+4+5      6+7+8


push cx
push dx
push bx

mov cx,3
mov dx,4
mov bx,5

call f_sum

pop bx
pop dx
pop cx

;又写了几百行汇编代码。

push cx
push dx
push bx

mov cx,6
mov dx,7
mov bx,8

call f_sum

pop bx
pop dx
pop cx

 

jmp near stop

 

f_sum:
mov ax,cx
add ax,dx
add ax,bx
ret


stop: jmp near stop
times 510-($-$$) db 0
dw 0xAA55

posted @ 2017-08-06 14:56  随意就好欧巴  阅读(117)  评论(0编辑  收藏  举报