文章来源:http://blog.csdn.net/zhengzhb/article/details/7247188
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.单一职责原则(SingleResponsibilityPrinciple)
2.里氏替换原则(LiskovSubstitutionPrinciple)
3.依赖倒置原则(DependenceInversionPrinciple)
4.接口隔离原则(InterfaceSegregationPrinciple)
5.迪米特法则(LawOfDemeter)
6.开闭原则(OpenClosePrinciple)
在软件设计的过程中,只要我们尽量遵循以上六条设计原则,设计出来的软件一定会是一个优秀的软件,它必定足够健壮、足够稳定,并以极大的灵活性来迎接随时而来的需求变更等因素。当完全明白这六个原则的含义时,小菜便完成了走向大牛的蜕变。
分享到:
相关推荐
为解放双手迈出重要一步——海外体验奥迪自动驾驶技术.pdf
迈出坚实的步划——我省普通高中《通用技术》课程建设的策略思考.pptx
机械设备行业周观点:管网公司有望近期成立,油气产业改革迈出重要一步.pdf
HP迈出Linux坚实一步.pdf
智能卡的操作系统——COS 2003-4-12 随着 Ic卡从简单的同步卡发展到异步卡,从简单的 EPROM卡发展 到内带微处理器的智能卡(又称CPU卡),对IC卡的各种要求越来越高。 而卡本身所需要的各种管理工作也越来越复杂,因此...
迈出中国“智能家居”之旅的第一步——访博西家用电器大中华区总裁盖尔克与信息技术部总监徐成茂.pdf
毕马威-中国税务前瞻:中国个人所得税向前迈出了巨大一步-1-18页.pdf
欧盟电动汽车迈出标准化的关键一步.pdf
积塔半导体临港工厂迈出生产关键一步.pdf
机械周报:华晟异质结项目已达设计产能,HJT电池量产化迈出关键一步.pdf
计算机行业周报:华为鸿蒙OS迈出自主可控坚实一步
计算机行业周报:华为鸿蒙OS迈出自主可控坚实一步.pdf
从0到1--迈出Veeam的第一步and销售场景_IT软件公司技术售前方案.pptx
建材行业周报:雨虹密集投资,华新迈出海外布局关键一步.pdf
没有豪横的数据规划治理和服务,有的只是我们从供应链域一个业务场景的切入,迈出落实“数据中台”概念的一小步。古人有云“积土成山,风雨兴焉,积水成渊,蛟龙兴焉”,我们相信从小的业务场景的积累和沉淀,不断...
澳科学家造出纳米激光朝新型芯片迈出关键一步.pdf
计算机:有线电视网络整合迈出历史性一步,广电5G箭在弦上-200226.rar
影视传媒行业周报:多方组建广电网络股份,国网融合迈出关键一步.pdf
20210620-申港证券-计算机行业:百度发布Apollo新车型,L4量产迈出关键一步.pdf
互联网电商行业:英伟达与VMWare联手,小米造车迈出关键一步-20230827-中信建投-24页