面向接口编程VS《倚天屠龙记》里张三丰教无忌打太极
搞笑哈,只细想想,编程和太极怎么能联系在一起了,是八秆子也打不着的哈!
昨天看了一篇文章是关于面向接口编程的文章,颇有心得,其实在今天中国IT软件行业的盛行,程序员们突飞猛涨,真正算的上程序员的又有几个(程序员指的是初级到高级到设计)。张口闭口面向对象,键盘上敲出来的还是结构化语言,除了不知从哪下来了一个数据库访问框架是面向对象思想写的,其它的模块几呼全是结构化语言。
面向对象设计里有一点大家已基本形成共识,就是面向接口编程,我想大多数人对这个是没有什么觉得需要怀疑的。问题是在实际的项目开发中我们是怎么体现的呢? 难道就是每一个实现都提供一个接口就了事了?反过来说,你有时候有没有觉得接口是多余的事? 又或者,你仅仅是觉得现在类似spring这样的框架已习惯用接口这种方式而心存当然。
设计模式解析里提到了面向对象设计考虑的几个视角,一个是概念层,一个是规约层,一个是实现层。我如果没有猜错的话,实际上我们大多数人的眼睛一直是盯着实现层的,而这正是面向对象设计所极力避免的,即你不要在一开始就关注这些细节,你要关注的是规约(接口).
做设计就应该是只关心整个系统的架构、模块与模块之间的交互、根据需求把系统用接口或是抽象类把系统的功能及模块抽象出来,不要关心它具体的实现(越不关心越好),这样会累死你也做不好设计。
哈哈,终于说说《倚天屠龙记》了,学做设计,这个好比张三丰教无忌打太极,不知你们还记不记得那一小段,叫他时张三丰问无忌:“你以前的功夫还记得吗!”无忌答:“咦!差不多忘了一半。”,傍边的师叔听了气偾的说:“你怎么能这样教你孙子呀”,又过了一会,张三丰问:“现在还记得多少”?,无忌说全忘了!这时张三丰,这才对,你的太极学的也差不多了,你可以去教量了。
学做设计也一样,做设计本来就是个全局性的,宏观性,相当抽象的思维。就应该把一些具体的实现忘的干干净净才能把心思一心一意放到设计上来。
软件需求变化无常,重要的是你怎样去类与类之间的灵活应该。太极也是世间万物变化无常借力用力类似类之间的复用技术。
太极:我国古代哲学上指宇宙的本原,为天地原始混沌之气。《周易·系辞上》:“易有~~,是生两仪。”
即是阐明 宇宙从无极而太极,以至万物化生的过程。其中的太极即为天地未开、混沌未分阴阳之前的状态。两仪即为太极的阴、阳二仪。《系辞》又说:“两仪生四象,四象生八卦”。其意指浩瀚宇宙间的一切事物和现象都包含着阴和阳,以及表与里的两面。而它们之间却既互相对立斗争又相互资生依存的关系,这即是物质世界的一般律,是众多事物的纲领和由来,也是事物产生与毁灭的根由所在。天地之道,以阴阳二气造化万物。天地、日月、雷电、风雨、四时、于前午后,以及雄雌、刚柔、动静、显敛,万事万物,莫不分阴阳。人生之理,以阴阳二气长养百骸。经络、骨肉、腹背、五脏、六腑,乃至七损八益,一身之内,莫不合阴阳之理。这一理论建立至今凡两三千年,仍在为人们描述万象。 太有至的意思; 极有极限之义, 就是至于极限, 无有相匹之意. 既包括了至极之理, 也包括了至大至小的时空极限, 放之则弥六合, 卷之退藏于心. 可以大于任意量而不能超越圆周和空间,也可以小于任意量而不等于零或无, 以上是太极二字的含义.太极图是研究周易学原理的一张重要的图象, 它包含了天地万物的共通规律在内, 所以有人说它是宇宙的模式, 是科学的灯塔。但太极图由于阴阳两面方位的移动和变换, 而又出现了不同的图象. 先天八卦图, 坤震离兑居左, 坤为母, 离再索而得女, 兑三索而得女, 三卦皆阴, 只震一索而得男为阳. 故太极图左面用黑色表示属阴, 黑中白点表示阴中有阳. 乾巽坎艮居右, 乾为父, 坎再索而得男, 艮三索而得男, 三卦比阳, 只巽一索而得女为阴, 故太极图右而用白色表示属阳, 白中黑点表示阳中有阴 本后天八卦图而绘制的太极图则恰与先天八卦图的太极图方向相反."太极元气, 含三为一", 为什么呢? 从太极图可以得出结论, 太极图这个圆圈, 就是代表的一, 代表的宇宙, 代表的无极. 太极是有限之天, 无极是无限之天; 太极是有, 无极是无; 太极是三, 无极是一. 图象的黑白二色, 代表阴阳两方, 天地两部; 黑白两方的的界限就是划分天地阴阳界的人部. 白中黑点表示阳中有阴, 黑方白点表示阴中有阳. 道生一, 就是无极生太极; 一生二就是太极生两仪; 二生三, 就是阴阳交感化合; 三生万物, 就是太极含三为一, 因万物由阴阳而化生, 故万物各具一太极, 也就是说, 太极不仅包含了阴阳两个方面, 还包含了划分阴阳的界线和标准在内. 若分而言之, 每卦有三爻, 也是代表天地人三才, 这也是含三为一之象. 又天有阴阳, 地有阴阳, 人亦有阴阳, 天之阴阳加上划界标准, 构成了含三为一的太极之象; 地之阴阳加划界中点构成含三为一的太极之象; 人部阴阳, 如男女雌雄亦各有它的划界标准, 所以万物也各有一太极, 也都是按照含三为一的规律而存在的.宇宙有无限大, 所以称为太极, 但是宇宙又是有形的, 即有实质的内容. 按易学的观点, 有形的东西来自于无形, 所以无极而太极.太极这个实体是健运不息的, 即宇宙在运动, 动则产生阳气, 动到一定程度, 变出现相对静止, 静则产生阴气, 如此一动一静, 阴阳之气互为其根, 运转于无穷. 自然界也是如此, 阴阳寒暑, 四时的生长化收藏,即万物的生长规律, 无不包含阴阳五行. 就人部阴阳而言"乾道成男, 坤道成女", 阴阳交合, 则化生万物, 万物按此规律生生不已, 故变化无穷. 这些内容提出了立天之道, 立地之道, 立人之道三纲领, 也就是三才之道, 所谓"六爻之动, 三极之道也." |
面向接口编程VS《倚天屠龙记》里张三丰教无忌打太极相关推荐
- go 学习笔记之万万没想到宠物店竟然催生出面向接口编程?
到底是要猫还是要狗 在上篇文章中,我们编撰了一则简短的小故事用于讲解了什么是面向对象的继承特性以及 Go 语言是如何实现这种继承语义的,这一节我们将继续探讨新的场景,希望能顺便讲解面向对象的接口概念. ...
- 【转】工厂模式面向接口编程
为了实现更好的灵活性 应改面向接口编程.因此,应该面向接口提供工场. 比如,Cat, Dog, Mouse,都是4条腿会跑的动物. 因此,我们建立一个接口叫做F ...
- Java 面向抽象编程和面向接口编程
以下内容来自<Java 2实用教程>,主编:耿祥义.张跃平 鉴于面向抽象编程和面向接口编程思维培养的重要性,写此博客巩固. 面向抽象编程: 在设计程序时,经常会使用到abstract类,其 ...
- 为什么有人说面向对象编程就是面向接口编程?
"面向对象编程就是面向接口编程" 这句话相信, 很多人都在网上见过, 装b利器. 我一开始也是这么想的, 那些装b者丢下这一句, 就没下文了. 首先, 我认为这句话是1个假命题. ...
- python面向接口编程_Python 中的面向接口编程
前言 "面向接口编程"写 Java 的朋友耳朵已经可以听出干茧了吧,当然这个思想在 Java 中非常重要,甚至几乎所有的编程语言都需要,毕竟程序具有良好的扩展性.维护性谁都不能拒绝 ...
- C语言面向对象编程(四):面向接口编程
Java 中有 interface 关键字,C++ 中有抽象类或纯虚类可以与 interface 比拟,C 语言中也可以实现类似的特性. 在面试 Java 程序员时我经常问的一个问题是:接口和抽象类有 ...
- python 接口编程_Python 中的面向接口编程
前言 "面向接口编程"写 Java 的朋友耳朵已经可以听出干茧了吧,当然这个思想在 Java 中非常重要,甚至几乎所有的编程语言都需要,毕竟程序具有良好的扩展性.维护性谁都不能拒绝 ...
- 软件设计模式—面向接口编程
原文作者:laoer2009 原文地址:设计模式之面向接口编程 01第一次需求 玩家有很多属性,例如:身高,性别 blalalala ,玩家可以攻击其他玩家.产品狗YY妹子写程序也是很利索,一天就把程 ...
- Java中的面向接口编程
面向接口编程是很多软件架构设计理论都倡导的编程方式,学习Java自然少不了这一部分,下面是我在学习过程中整理出来的关于如何在Java中实现面向接口编程的知识.分享出来,有不对之处还请大家指正. 接口体 ...
最新文章
- OneAPM挂牌新三板,续写 ITOM 新篇章
- 为什么远程桌面不能复制?解决方法
- Java学习之键盘输入输出小程序
- jira以及jira API简单介绍
- 英语不会读怎么办?它来教你……
- 《Head First设计模式》第三章笔记 装饰者模式
- Python的numpy基本用法
- mysql怎么保证热点数据_MySQL里有2000w数据,redis中只存20w数据,如何保证redis中数据都是热点数据...
- Socket.io:有点意思
- HDU 2006 (水)
- 从inceptionv1走向xception小结
- linux下载安装自我见解
- CTF密码学之Base64,Base32,Base16
- LTE上行物理层传输机制(5)-CQI的传输方式
- Java中的数组注意点
- 白话Elasticsearch59-数据建模实战_ Nested Aggregation/ Reverse nested Aggregation对嵌套的博客评论数据进行聚合分析
- Python 爬取迷你MP4电影网,电影名称保存到本地,Requests+lxml框架
- git之删除仓库文件
- 【五子棋AI循序渐进】发布一个完整的有一定棋力的版本(含源码)
- 数据结构(C语言描述)——顺序表
热门文章
- 第三方支付宝API应用流程
- SQLite封锁机制
- VMX(1) -- 简介
- postman团队人数限制_您的团队需要最低在制品限制吗?
- Stream流、方法引用知识梳理
- 图像处理——gamma矫正
- webpack打包提示: The following entrypoint(s) combined asset size exceeds the recommended limit
- 解决关于VS无法加载解决方案中的项目的问题
- 【多元统计分析与R语言】【详解】使用教材P84页表3-2进行多元数据简单R分析:定量变量的分析(直方图、散点图)、定性变量的分析并绘制绘制均值条图、箱尾图、星相图、调和曲线图
- Hadoop Namenode元数据文件 Fsimage、editlog、seen_txid说明