移动端touch拖动事件和click事件冲突问题解决

通过本课程你会学到什么

1.系统掌握 Web 全栈技能树
2.网络、前后端、持久化等核心技术解析
3.全栈开发的技术比较和选型
4.拓宽技术视野,培养全栈思维


今天我们要接触一个和 MVC 密切相关的,能带来思维模式改变的编程范型——面向切面编程(AOP,Aspect Oriented Programming)

给我一把锤子,满世界都是钉子

我记得曾经有这样一个相当流行的观点,是说,编程语言只需要学习一门就够了,学那么多也没有用,因为技术是一通百通的,别的编程语言可以说是大同小异。我相信至今抱有这种观点的程序员也不在少数。

可惜,事实远没有那么美好。这个观点主要有两处值得商榷:

  • 其一,不同的技术,在一定程度上确实是相通的,可是,技术之间的关联性,远不是“一通百通”这四个简简单单的字能够解释的。妄想仅仅凭借精通一门编程语言,就能够自动打通其它所有编程语言的任督二脉,这是不现实的。* 其二,通常来说,说编程语言大同小异其实是很不客观的。编程语言经过了长时间的发展演化,如今已经发展出非常多的类型,用作编程语言分类标准之一的编程范型也可谓是百花齐放。因此我们要学习多种编程语言,特别是那些能带来新的思维模式的编程语言。现在,把这个观点泛化到普遍的软件技术上,也一样适用。我们都知道要“一切从实际出发”,都知道要“具体问题具体分析”,可是,在眼界还不够开阔的时候,特别是职业生涯的早期,程序员在武器库里的武器还非常有限的时候,依然无法避免“给我一把锤子,满世界都是钉子”,在技术选择的时候眼光相对局限

所以我们要学习全栈技术,尤其是要学习这些不一样,但一定层面上和已掌握知识相通的典型技术。今天我们要学习的这项在 MVC 框架中广泛使用的技术,是和面向对象编程一类层面的编程范型,叫做面向切面编程。

互联网有许多功能,如果使用传统的基于单个请求处理流程的方式来编码,代码就会非常繁琐,而使用 AOP 的方式,代码可以得到很大程度上的简化。希望通过今天的学习,你的武器库里,能够多一把重型机枪。

AOP 的概念

面向切面编程是一种通过横切关注点(Cross-cutting Concerns)分离来增强代码模块性的方法,它能够在不修改业务主体代码的情况下,对它添加额外的行为。

不好理解吗?没关系,我们来对它做进一步的说明。

首先需要明确的是,AOP 的目标是增强代码模块性,也就是说,本质上它是一种“解耦”的方法,在这方面它和我们之前介绍的分层等方法是类似的,可是,它分离代码的角度与我们传统、自然的模块设计思路截然不同。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值