- 浏览: 968140 次
- 性别:
- 来自: 魔都
-
文章分类
- 全部博客 (745)
- MultiThread (19)
- My Plan (118)
- JavaBasic (61)
- MyInterview (104)
- InternetTechnique (5)
- ProjectConclusion (1)
- Maven (5)
- MogoDb (5)
- Hadoop (11)
- Memcached (6)
- TechniqueCollect (1)
- Ibaits (1)
- Android (34)
- ItLife (40)
- Tree (2)
- ProjectArchitect (7)
- Open Source (3)
- liunx (5)
- socket (8)
- Spring (27)
- DesginPattern (35)
- WebBasic (13)
- English (13)
- structs (1)
- structs2 (2)
- Oracle (17)
- Hibernate (2)
- JavaScript (4)
- Jdbc (1)
- Jvm (15)
- Ibatis (1)
- DataStructures (13)
- Https/Socket/Tcp/Ip (3)
- Linux (4)
- Webservice (7)
- Io (2)
- Svn (1)
- Css (1)
- Ajax (1)
- ExtJs (1)
- UML (2)
- DataBase (6)
- BankTechnique (3)
- SpringMvc (3)
- Nio (3)
- Load Balancing/Cluster (3)
- Tools (1)
- javaPerformanceOptimization (8)
- Lucene(SEO) (1)
- My Think (80)
- NodeJs (1)
- Quartz (1)
- Distributed-java (1)
- MySql (7)
- Project (4)
- junit (4)
- framework (1)
- enCache (1)
- git (2)
- SCJP (1)
- sd (1)
最新评论
-
lkjxshi:
你都这水平了还考这个证干嘛
SCJP 认证考试指南 -
钟逸华:
问的真多
百度java开发面试题(转) -
zuimeitulip:
觉得我就是这样的,从小阅读量就很少,导致现在的读的速度非常慢, ...
让读书成为一种习惯 -
DDT_123456:
我觉得你是不符合要求。问你hashmap的那个问题,你那样回答 ...
阿里面试2(转) -
jingjing0907:
刚刚写了很多读过此博客的感受,竟然没有发上去,以为我注册账号还 ...
让读书成为一种习惯
IT职场的小菜经常有这样的疑问:
为什么一个相似的功能,大牛一会儿就搞定,然后悠闲地品着下午茶逛淘宝;而自己加班加点搞到天亮还做不完。
为什么用户提出需求变更后,大牛只需潇洒地敲敲键盘,改改配置;而自己将代码改了又改,删了又建,几乎晕厥,最后只能推翻重来。
为什么大牛写完的程序测试上线后,几乎完美运行,用户无懈可击;而自己的程序bug重重,改好一个却又引出另一个,按下葫芦浮起瓢,几近崩溃。
为什么同样是程序员,大牛工资1W,而自己只能拿区区的3K?
大牛显然知道一些小菜所不知道的秘密,这秘密又是什么呢?
这个秘密就是设计模式。设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。只有精通了设计模式,才敢说真正理解了软件工程。可以说,设计模式是每一个架构师所必备的技能之一。作为一个面向对象设计程序员,只有精通了设计模式,才能完成自身价值从3K到1W的飞跃,才能摆脱码奴的命运,成为一个真正的软件工程师。
提到设计模式,不得不感谢GoF(Gang of Four,四人组),他们1995年出版的《设计模式》一书,第一次将设计模式提升到理论高度,并将之规范化。书中一共总结了23种基本的设计模式。而这23中设计模式几乎涵盖了面向对象设计过程中所有问题的解决方案。书中提到的23种设计模式分别是:
1.单例模式 2.工厂方法模式 3.抽象工厂模式 4.模版方法模式 5.建造者模式 6.代理模式 7.原型模式 8.中介者模式
9.命令模式 10.责任链模式 11.装饰模式 12.策略模式 13.适配器模式 14.迭代器模式 15.组合模式 16.观察者模式
17.门面模式 18.备忘录模式 19.访问者模式 20.状态模式 21.解释器模式 22.享元模式 23.桥梁模式
那么如此多的设计模式又是从何而来呢?《易经》有云:“易有太极,是生两仪,两仪生四象,四象生八卦”,意思就是说世界万物皆有起源。而设计模式的起源是面向对象程序设计思想,是面向对象设计的精髓——抽象。面向对象通过类和对象来实现抽象,实现时产生了面向对象的三个重要机制:封装、继承、多态。正是这三个机制衍生出了各种各样的设计模式。在面向对象软件设计的发展过程中,除了《设计模式》一书中提到的23中设计模式之外,新的设计模式仍然不断出现。
从面向过程到面向对象是软件设计诞生以来的迈出的最伟大的一步,面向对象程序设计成功解决了面向过程软件编程的低效率问题,并且彻底改变了人们的编程思维,为软件设计揭开了新的篇章。然而,要实现面向对象设计,彻底摆脱面向过程设计思维,并不仅仅是只要使用了一门面向对象的编程语言就能够达到的。使用面向对象设计,可以设计出优秀的软件,同样也可以设计出糟糕的软件。只有遵循一些特定的原则,才能设计出复用性高灵活性好的软件来。
在运用面向对象的思想进行软件设计时,需要遵循的原则一共有6个,他们是:
1. 单一职责原则(Single Responsibility Principle)
2. 里氏替换原则(Liskov Substitution Principle)
3. 依赖倒置原则(Dependence Inversion Principle)
4. 接口隔离原则(Interface Segregation Principle)
5. 迪米特法则(Law Of Demeter)
6. 开闭原则(Open Close Principle)
在软件设计的过程中,只要我们尽量遵循以上六条设计原则,设计出来的软件一定会是一个优秀的软件,它必定足够健壮、足够稳定,并以极大的灵活性来迎接随时而来的需求变更等因素。当完全明白这六个原则的含义时,小菜便完成了走向大牛的蜕变。
为什么一个相似的功能,大牛一会儿就搞定,然后悠闲地品着下午茶逛淘宝;而自己加班加点搞到天亮还做不完。
为什么用户提出需求变更后,大牛只需潇洒地敲敲键盘,改改配置;而自己将代码改了又改,删了又建,几乎晕厥,最后只能推翻重来。
为什么大牛写完的程序测试上线后,几乎完美运行,用户无懈可击;而自己的程序bug重重,改好一个却又引出另一个,按下葫芦浮起瓢,几近崩溃。
为什么同样是程序员,大牛工资1W,而自己只能拿区区的3K?
大牛显然知道一些小菜所不知道的秘密,这秘密又是什么呢?
这个秘密就是设计模式。设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。只有精通了设计模式,才敢说真正理解了软件工程。可以说,设计模式是每一个架构师所必备的技能之一。作为一个面向对象设计程序员,只有精通了设计模式,才能完成自身价值从3K到1W的飞跃,才能摆脱码奴的命运,成为一个真正的软件工程师。
提到设计模式,不得不感谢GoF(Gang of Four,四人组),他们1995年出版的《设计模式》一书,第一次将设计模式提升到理论高度,并将之规范化。书中一共总结了23种基本的设计模式。而这23中设计模式几乎涵盖了面向对象设计过程中所有问题的解决方案。书中提到的23种设计模式分别是:
1.单例模式 2.工厂方法模式 3.抽象工厂模式 4.模版方法模式 5.建造者模式 6.代理模式 7.原型模式 8.中介者模式
9.命令模式 10.责任链模式 11.装饰模式 12.策略模式 13.适配器模式 14.迭代器模式 15.组合模式 16.观察者模式
17.门面模式 18.备忘录模式 19.访问者模式 20.状态模式 21.解释器模式 22.享元模式 23.桥梁模式
那么如此多的设计模式又是从何而来呢?《易经》有云:“易有太极,是生两仪,两仪生四象,四象生八卦”,意思就是说世界万物皆有起源。而设计模式的起源是面向对象程序设计思想,是面向对象设计的精髓——抽象。面向对象通过类和对象来实现抽象,实现时产生了面向对象的三个重要机制:封装、继承、多态。正是这三个机制衍生出了各种各样的设计模式。在面向对象软件设计的发展过程中,除了《设计模式》一书中提到的23中设计模式之外,新的设计模式仍然不断出现。
从面向过程到面向对象是软件设计诞生以来的迈出的最伟大的一步,面向对象程序设计成功解决了面向过程软件编程的低效率问题,并且彻底改变了人们的编程思维,为软件设计揭开了新的篇章。然而,要实现面向对象设计,彻底摆脱面向过程设计思维,并不仅仅是只要使用了一门面向对象的编程语言就能够达到的。使用面向对象设计,可以设计出优秀的软件,同样也可以设计出糟糕的软件。只有遵循一些特定的原则,才能设计出复用性高灵活性好的软件来。
在运用面向对象的思想进行软件设计时,需要遵循的原则一共有6个,他们是:
1. 单一职责原则(Single Responsibility Principle)
2. 里氏替换原则(Liskov Substitution Principle)
3. 依赖倒置原则(Dependence Inversion Principle)
4. 接口隔离原则(Interface Segregation Principle)
5. 迪米特法则(Law Of Demeter)
6. 开闭原则(Open Close Principle)
在软件设计的过程中,只要我们尽量遵循以上六条设计原则,设计出来的软件一定会是一个优秀的软件,它必定足够健壮、足够稳定,并以极大的灵活性来迎接随时而来的需求变更等因素。当完全明白这六个原则的含义时,小菜便完成了走向大牛的蜕变。
发表评论
-
浅析hibernate缓存机制
2014-01-05 14:05 1001浅析hibernate缓存机制 hib ... -
2013总结与2014计划
2014-01-01 01:13 10532013总结与2014计划 1.2013年 1. ... -
成为一个明星程序员(转)
2013-12-31 19:43 730很多开发者会认为要想成为一个明星程序员所需要做的事情一定都是 ... -
学编程学到的几件事(转)
2013-12-24 20:16 640学编程学到的几件事 ... -
九句良言胜敲十年代码(转)
2013-12-01 20:25 406此刻,夜深人静,时间已超过凌晨零点,散仙还在读张龙老师的一篇博 ... -
张龙风中叶老师经历(转)
2013-11-06 21:11 1243http://blog.csdn.net/ricohzhan ... -
李嘉诚深圳演讲
2013-11-05 23:19 894为什么你一直没有成就? 因为你随波逐流,近墨者黑、不 ... -
毕业三年之际写给可能迷茫的你我(转)
2013-11-05 20:34 1007http://liugang-ok.iteye.com/bl ... -
男人关心的东西,决定着他的层次
2013-10-05 21:25 1032一、男人拥有自信和风度 男人到了二十几 ... -
提高工作效率的一些方法
2013-08-19 23:47 981最近明显感觉时间不够用,主要原因还是工作效率不高,找来一本关 ... -
迈向架构师的第一步(转)
2013-08-19 23:41 830有一个多月没有写blog,主要原因是受工作所累,公司由于组织 ... -
转载:程序员的出路在哪里
2013-08-13 22:59 858转载:程序员的出路在哪里 2013-5-11 05:18 阅读 ... -
14条建议,使你的IT职业生涯更上一层楼
2013-08-11 14:21 90214条建议,使你的IT职业生涯更上一层楼 http:/ ... -
技术人员如何去面试?
2013-08-10 20:34 874一、为什么跳槽和选择公司 1. 为什么跳槽 虽然 ... -
写给没什么经验的IT程序猿们
2013-08-09 21:24 880http://www.iteye.com/topic/11 ... -
[转]工作心态与习惯——致85后与90后的“比”一代
2013-08-09 02:30 779[转]工作心态与习惯——致85后与90后的“比”一代 ... -
怎样当一个企业舍不得的人
2013-07-23 18:57 825怎样当一个企业舍不得的人 项目发展到 ... -
程序员扩充人脉那些事儿
2013-07-21 11:22 933程序员扩充人脉那些 ... -
成为高效程序员的7个重要习惯
2013-07-11 21:27 1059作为软件工程师,你希 ... -
升职指南:走好五步棋
2013-07-05 21:57 811职场中能接任上司位置的人无疑是少数幸运儿,而绝大部分人的命运还 ...
相关推荐
为解放双手迈出重要一步——海外体验奥迪自动驾驶技术.pdf
在《设计模式——约会版》这一独特视角下探讨的设计模式,并非我们传统意义上的面向对象设计模式(如工厂模式、单例模式等),而是通过模拟约会场景,将抽象的设计原则与实际生活中的互动策略相结合,以此来形象地...
《Head First 设计模式》的特点在于其丰富的图表、幽默的插图和互动式的教学方式,使读者能够轻松理解和掌握设计模式。通过实际案例和有趣的情景,书中的每个模式都得到了生动的展示,帮助读者将理论知识转化为实际...
总的来说,"让你的简历脱颖而出——精美配图设计优秀国外ppt模板下载"提供的资源是一个极好的工具,可以帮助你在求职路上迈出成功的第一步。通过合理利用这些模板,你的简历将不仅仅是文字的罗列,而是一部生动展示...
根据给定文件的信息,我们可以提炼出以下相关的IT知识点: ### 一、引言与职业发展 **引言:** 在IT行业中,很多技术人员可能会发现自己在某个...掌握了这些模式,意味着你在通往架构师的道路上迈出了坚实的一步。
迈出坚实的步划——我省普通高中《通用技术》课程建设的策略思考.pptx
### Android入门教程系列之1——贪吃蛇改进版 #### 一、背景介绍与课程概述 本教程旨在为初学者提供一套系统性的Android开发学习方案,通过实践项目“贪吃蛇改进版”来掌握Android应用开发的基础知识和技术要点。...
《C语言从入门到精通(第5版)》是一本深受程序员喜爱的教材,它为初学者提供了全面、深入理解C语言的途径。本PPT电子课件是该书的辅助学习资源,旨在帮助读者更好地消化和吸收书中的概念与技巧。通过PPT的形式,...
《坦克大战3.0》是一款基于Java编程语言开发的经典游戏,源码的提供为...通过深入研究这个项目,开发者不仅可以提升自己的编程技能,还能了解到如何将理论知识应用于实际项目,从而在游戏开发的道路上迈出坚实的一步。
《x86汇编语言 从实模式到保护模式》这本书正是在这一领域中,为读者提供了一条从基础到深入的探索路径。 这本书详细地阐述了x86架构在启动和运行过程中的底层机制,特别是微处理器从实模式向保护模式过渡的关键...
内容从基础的机械结构设计到复杂的自动控制理论,无不涵盖,力求让每一位新手都能在机器人学的世界中找到乐趣,并快速成长。 在机械工程领域,学习机器人的结构设计是基础。资源包详细介绍了不同类型的关节和传动...
《轴机械加工工艺规程与钻床夹具设计》这份机械工程专业的毕业设计,是机械学子在大学生涯中必经的一次实践能力的检验。它不仅是对学生在理论知识...这份毕业设计的完成,标志着机械学子向成熟工程师迈出的重要一步。
在职场中,一份精心制作的工作总结报告PPT模板是至关重要的,它可以帮助我们高效地整理工作成果、..."迈向成功——工作总结报告ppt模板"正是这样一个工具,帮助我们在职场中迈出坚实的一步,实现从优秀到卓越的跨越。
在进行小学六年级上册语文教学设计时,我们选择了一篇富有教育意义的课文——《走一步,再走一步》,它通过...通过精心的教学设计,我们希望每位学生都能从中学到知识,收获智慧,最终在人生的道路上勇敢地迈出每一步。
Euro NCAP 致力于提高重型卡车的安全性,这是朝着实现“零伤亡愿景”目标迈出的重要一步。这一目标旨在消除交通死亡和重伤事故。尽管重型货车(HGV)在欧洲道路上的车辆总数中所占比例很小,但它们在严重事故中的...
《ArcObjects开发基础与技巧——基于Visual Basic .NET》是由蒋波涛编著的一本GIS(地理...通过阅读此书,读者不仅可以掌握ArcObjects开发的基本技能,还能深入了解GIS的原理和应用,从而在GIS开发领域迈出坚实的步伐。
尽管它的运算速度与现代计算机相比显得缓慢,但它的问世,却标志着人类在信息处理方面迈出了历史性的一步。 随着技术的发展,计算机从第一代的真空管时代,过渡到第二代的晶体管时代,体积逐渐缩小,运算速度大幅...
HP迈出Linux坚实一步.pdf
作为“飞高高的比目鱼”团队的一员,我有幸在这个项目中扮演了重要的角色,并在其中学习到了宝贵的技能和经验。本文将详细叙述我在小组中的职责,分享我对游戏开发的新理解,以及我在实训过程中的收获和教训。 一、...
随着社交媒体的兴起,微博已成为众多企业品牌推广和信息传播的重要渠道之一。对于联通公司这样的国内知名电信运营商来说,利用微博平台进行市场活动和客户服务无疑成为增强竞争力的有力手段。为了帮助员工和合作伙伴...