面向XX编程
[一篮饭特稀原创,转载请注明出自http://www.cnblogs.com/wanghafan/p/5033186.html ]
基于面向XX编程的个人理解
面向过程编程 Procedure Oriented Programming(POP)
实现目的:分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用。
主要概念:方法、过程
面向对象编程 Object Oriented Programming(OOP)
实现目的:由单个能够起到子程序作用的单元或对象组合而成。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。
主要概念:对象、类、封装、继承、多态、消息传递、数据抽象、动态绑定
面向实现编程 Realize Oriented Programming(ROP基于OOP)
实现目的:当我们要控制某个类的对象,那么我们会直接在当前程序(自身类)中,实例化该类,然后通过该类调用相应的方法。这是一种最基本的面向对象编程模式。
主要概念:高耦合,不支持多态
面向接口编程 Interface Oriented Programming(IOP基于OOP) 推荐
实现目的:为了需求变更,接口层dll不用重新编译,只要编译实现层dll即可。调用接口的人会感到很舒服,接口依旧功能更新。适用于较不固定需求的项目。
主要概念:低耦合,便于扩展
面向切面编程 Aspect Oriented Programming(AOP)
实现目的:针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。
使用范围:切面、连接点、处理逻辑、切点、引进、目标类、代理类、插入
高内聚低耦合
低耦合:实现接口与实现分离,结构清晰。
高内聚:一个类中的属性方法都实现同一个业务。
面向XX编程的更多相关文章
- Spring面向切面编程(AOP,Aspect Oriented Programming)
AOP为Aspect Oriented Programming的缩写,意为:面向切面编程(也叫面向方面),可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术. ...
- iOS 开源库系列 Aspects核心源码分析---面向切面编程之疯狂的 Aspects
Aspects的源码学习,我学到的有几下几点 Objective-C Runtime 理解OC的消息分发机制 KVO中的指针交换技术 Block 在内存中的数据结构 const 的修饰区别 block ...
- 利用例子来理解spring的面向切面编程(使用@Aspect)
上篇的例子,自动装配和自动检测Bean是使用注解的方式处理的,而面向切面编程是使用aop标签处理的,给我感觉就像中西医参合一样. 现在就来优化优化,全部使用注解的方式处理. 1.工程图:
- 我面向 Google 编程,他面向薪资编程
面试官:同学,说一说面向对象有什么好处? 神仙开发者:我觉的面向对象编程没有什么好处. 面试官:为什么(摊手.问号脸)? 神仙开发者:因为在面向对象的时候,我对象总是跟我说话,问我在淘宝上挑的衣服哪个 ...
- Java中的面向切面编程(AOP)
一.什么是AOP? Aspect Oriented Programming ,即面向切面编程. AOP是对面向对象编程的一个补充. 它的目的是将复杂的需求分解为不同的切面,将散布在系统中的公共功能集中 ...
- fir.im Weekly - 揭秘 iOS 面向协议编程
本期 fir.im Weekly 重点推荐关于 iOS 面向协议编程相关文章,还有 iOS 多线程安全.Swift 进阶.Android MVVM 应用框架.Android 蓝牙实践等技术文章分享和工 ...
- c# 面向方面编程
AOP面向切面编程(Aspect Oriented Programming),是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.Spring框架用的核心技术就是AOP,是函数式编程的一 ...
- AOP 面向切面编程, Attribute在项目中的应用
一.AOP(面向切面编程)简介 在我们平时的开发中,我们一般都是面对对象编程,面向对象的特点是继承.多态和封装,我们的业务逻辑代码主要是写在这一个个的类中,但我们在实现业务的同时,难免也到多个重复的操 ...
- AOP面向切面编程的四种实现
一.AOP(面向切面编程)的四种实现分别为最原始的经典AOP.代理工厂bean(ProxyFacteryBean)和默认自动代理DefaultAdvisorAutoProxyCreator以及Bea ...
随机推荐
- 【译文】NginScript – 为什么我们要实现自己的JS引擎?
在上周的nginx.conf 2015用户大会上,我们发布了全新的JavaScript引擎nginscript的预览版.历史上,JavaScript语言已经应用在许多方面,首先是作为客户端脚本,然后又 ...
- .net在Controller里的方法添加[HttpGet]和[HttpPost]
前端用post过来,Controller就要用[HttpPost],前端用get,Controller就要用[HttpGet],或者不管前端用什么,Controller都不加这些. 前端用post $ ...
- Lisp与JAVA的酷毙结合——abcl
最近看了一本叫做<黑客与画家>的书,其中对于Lisp语言大加褒奖.自己试着用了一下,虽然确实有反人类之嫌,但是确实是一门不错的语言,New Architect杂志上有一篇介绍ITA软件公司 ...
- 【开发】Form 表单 Linkbutton 禁用
在权限判定中,对于无权限操作的按钮可直接隐藏($.hide()). HTML 定义 <a id="btnPreAssign_GeneralTasks" class=" ...
- ajax和jsonp的封装
一直在用jQuery的ajax,跨域也是一直用的jQuery的jsonp,jQuery确实很方便,$.ajax({...})就可以搞定. 为了更好的理解ajax和jsonp,又重新看了下书,看了一些博 ...
- https证书申请
因为要为海外组的aws设置https证书,由于使用的是新的域名,所以要先申请购买证书,然后设置上去.由于是第一次做这件事.所以过程有些坎坷. 先购买https证书.看了几家,感觉GoDad ...
- Oracle 关于事物的描述
事物在Oracle中的4种状态: commit--提交 rollback--全部回滚 savepoint name;--定义一个回滚到这里的点:例如:savepoint a; rollback to ...
- jquery鼠标样式
浏览器是有自带的鼠标样式的,如果某些时候为了保持鼠标样式的统一,或者想指定特定的鼠标样式该怎么办呢?那就要使用自定义了,下面有个不错的示例,喜欢的朋友可以参考下 1.浏览器自带的鼠标样式: 2. ...
- GDI+ 如何将图片绘制成圆形的图片
大概意思就是不生成新的图片,而是将图片转换为圆形图片. 实现代码如下: private Image CutEllipse(Image img, Rectangle rec, Size size) { ...
- gulp-less学习教程
过程安装nodejs -> 全局安装gulp -> 项目安装gulp以及gulp插件 -> 配置gulpfile.js -> 运行任务node.npm安装 自己搜全局安装gul ...