3d应该是下常用设计模式和应用场景还是经典模式

最近在坛子里逛发现大家在讨論常用设计模式和应用场景模式时认为,常用设计模式和应用场景模式仅仅在应用开发的技术框架部分用的较多甚至有人认为现在的应鼡开发采用开源的流行框架如spring等就行,不需要太多的应用常用设计模式和应用场景模式宣扬常用设计模式和应用场景模式对于应用开发嘚无用论,在此本人有如下观点:

1、做企业级应用开发常用设计模式和应用场景模式用的最多的地方应该是业务领域常用设计模式和应鼡场景,而不是开发框架常用设计模式和应用场景正像前面有人认为的开发框架用spring,的确不需要太多的常用设计模式和应用场景模式再鼡到框架的开发上都是现成的,用就行而业务领域的常用设计模式和应用场景是每一个领域特有的,甚至是需要针对不同的用户定制開发的在这个范畴中需要应用大量的常用设计模式和应用场景模式帮助我们常用设计模式和应用场景更好的业务领域模型。

2、我们应该哽加关注业务的面向对象常用设计模式和应用场景这是基础,然后才是在业务领域对象模型上的常用设计模式和应用场景模式应用如果业务的常用设计模式和应用场景是面向关系而不是面向对象,那么应用常用设计模式和应用场景模式比较困难驴唇不对马嘴!

}
java常用的常用设计模式和应用场景模式有哪些 就是重点学习的常用设计模式和应用场景模式

java常用的常用设计模式和应用场景模式有哪些 就是重点学习的常用设计模式和应用場景模式 望大神指点

单例工厂,监听这几个算比较常见的,等你写过的代码变多了你就知道了

单例模式 ,工厂模式, 观察者模式, 适配器模式, 代理模式等等比较常见的

有专门的书籍讲述java的常用设计模式和应用场景模式的,如果用于应付面试把常用的几种记住就好了,如果昰提升的话其实每种模式都可以学习学习

单例模式 ,(抽象)工厂模式, 观察者模式, 适配器模式, 代理模式等等

;问题解决后请采纳答案。

抄襲、复制答案以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号是时候展现真正的技术了!

}

   不知道大家在工作中常用设计模式和应用场景模式用的多不多个人觉得对一个senior来说,不会常用设计模式和应用场景模式和OOP根本无法进行常用设计模式和应用场景,写絀来的代码也 “泰瑞博”我平时写代码时也想好好分析一下,多用一些类进行封装将业务进行抽象,使用常用设计模式和应用场景模式可是坑爹的公司压力就是那么大,一个任务下来就那么几天必须完成根本来不及慢慢思考,就去编码了跟team leader说多给点时间好好常用設计模式和应用场景,就是浪费时间他们只看结果。从来没有代码走读和重构

  我想很多C++程序员应该有和我一样的感受,所以兄弟们汾享一下自己使用过的常用设计模式和应用场景模式和使用场景吧,顺便说一下自己掌握了多少个常用设计模式和应用场景模式及工作年限等方便膜拜。呵呵

对于商业用的软件工程追求时效是必然的,即使是很正规的公司也要先卡时间。当然这样的公司也许后面会給一段时间再完善。但这个时代毕竟这样的公司不多大多都是应付客户而已,完成功能即可但这样对公司的技术储备和经验积累都不利,也对个人编程能力的发展不利

我觉得,你的想法非常好能把问题抽象出来看,才会做得更完美也看得更远,自己的视野也会更開拓那么就在应付完项目后,如果有时间整理一下自己的工作按自己的想法再加工一下。如果公司有软件更新的下一个版本的话你僦会用到这个。这样做出的软件更易于维护和发展即使没有下一个版本,这样的总结和积累也是一个对自己能力发展的促进。呵呵當然也会有成就感。

一般都是先会编程、写项目然后才去学习常用设计模式和应用场景模式

能用常用设计模式和应用场景模式去规划项目的并不多常用设计模式和应用场景模式是从实际开发中提炼出来的,实际上你在做开发时已经在自觉或不自觉的在使用“常用设计模式囷应用场景模式”不信你把你的项目撸一撸看看都是哪些常用设计模式和应用场景模式的应用

是这样的,个人感觉很多C++的到了工作的第2.5姩之后才会用而且用的不标准,甚至混乱导致代码不清晰,难维护如果一开始就能掌握理论,接着学着使用就更好了就像学会了加减乘除再去菜场买菜一样。

所以开个帖子希望大家受益,讨论大家还是说说自己用过的场景吧。

从底层常用设计模式和应用场景起來的大的工程才需要常用设计模式和应用场景模式吧毕竟用常用设计模式和应用场景模式还不如用一个框架,android这种的基本上是告别常用設计模式和应用场景模式了其实编多了之后,自然就有些概念性思想这些思想其实跟这些常用设计模式和应用场景模式差不多。就像AndroidΦ用单例的情况还是比较多的,但算不上是一个常用设计模式和应用场景模式小技巧而已。存指针和引用的方式应该也是惯用但也算不上一个标准的观察者模式。

实习的时候公司有一个从底层建起来的项目,我接触到的大概150w行代码一些更底层的库我没权限看代码。用的就是全局的观察者模式目的就是在任何一个类里的任何一个函数内都可以操纵所有的类和函数,使用起来非常方便可以在任意嘚地方加任意的功能。更妙的是利用com接口的一些特性可以根据类本身,获取一个com基类再用这个基类加uuid就可以访问所有。

在这一年多的笁作中也感觉到很多时候一个项目下来基本没什么时间让你去常用设计模式和应用场景只有让你想想怎么实现功能的时间。看了常用设計模式和应用场景模式的书也发觉很多时候用不上,最多也就是简单的单例、工厂、策略模式等刚开始学的时候,老是在想这个常用設计模式和应用场景模式能不能用要怎么用,特别是想不出来时真的挺让人郁闷的。后来也不这样做了只记得了常用设计模式和应鼡场景模式的本质,封装变化、抽象编程后来编写代码的时候也就想想哪个地方是会变化的,需要抽取出来能不能自己简单的抽象下處理,不行再去看看有没有解决类似问题的常用设计模式和应用场景模式吧个人愚见,哈哈

我博客中有些关于常用设计模式和应用场景模式的文章可以参考下:

关于怎么学习常用设计模式和应用场景模式:1. 把GOF的常用设计模式和应用场景模式看3遍以上,看懂为止2. 看优秀开源代码看别人是怎么使用常用设计模式和应用场景模式的3. 自己尝试实践和运用模式C++ 支持多种范型,因此常用设计模式和应用场景模式在C++使用不是很典型纯面向对象语言,如java和C#它们在常用设计模式和应用场景模式使用上往往更彻底。上面有人提到“实习的时候公司有┅个从底层建起来的项目,我接触到的大概150w行代码一些更底层的库我没权限看代码。用的就是全局的观察者模式目的就是在任何一个類里的任何一个函数内都可以操纵所有的类和函数,使用起来非常方便可以在任意的地方加任意的功能。更妙的是利用com接口的一些特性可以根据类本身,获取一个com基类再用这个基类加uuid就可以访问所有。”个人不是很同意 大型程序各个类可以随意相互访问,是什么一種情况即使基于COM接口,也是一坨乱麻大型程序首先强调模块化,模块以独立接口的形式暴露给外部 各模块单向依赖, 一层层往上搭COM本身是个好东西 ,但是以COM接口的名义将所有功能耦合在一起随意QueryInterface,随意调用就不对了 这样的网状依赖可能你暂时自己用的爽了 ,但昰以后会让程序很维护 模块很难重用,不符合软件工程低耦合高内聚的原则

后来编写代码的时候也就想想哪个地方是会变化的,需要抽取出来能不能自己简单的抽象下处理,不行再去看看有没有解决类似问题的常用设计模式和应用场景模式吧

这个我周末的时候刚刚想通了,呵呵多谢。还是要抽些时间多学习一些理论水平先上去,然后再在应用中发挥不过那些理论学习的时候很枯燥,找不到有這些应用的代码有的话一看就明白了。

什么是常用设计模式和应用场景模式 所谓常用设计模式和应用场景模式就是前人在解决问题中總结的定式,如同解题公式

没有常用设计模式和应用场景模式一样实现代码,但当解决同样的问题时要走别人走过的弯路。学习常用設计模式和应用场景模式就是学习一些思路生搬硬套是要不得的。我觉得常用设计模式和应用场景模式像极了咱们老祖宗传下来的中国功夫可能就是简单的二十四式,招式需烂熟与胸实战时,一切都是自然流露不会特意去想用哪一招,完全根据场景对手、目标而洎然的出招。而且需要变通和演化如果说你的代码中没有用到模式,那可能实战就是泼妇打架一通乱拳了。高手当然不会如此学习模式的一个捷径是看一些经典成熟的代码,MFC1.0诞生于1991年你去看源代码和实例会发现那里面已经用过很多模式了,其他高手代码一样如此絕对不限于书上那一点点。

以后再做常用设计模式和应用场景坚决考虑可维护性。顶住压力多运用常用设计模式和应用场景模式,不會也要依葫芦画瓢挨骂就挨骂吧,大不了自己多加点班

那么到现在总结一下吧.如何学好常用设计模式和应用场景模式:1.先具备理论素質,多看书一定要用代码实现各种模式,哪怕是简单的例子(本人正在进行中以资鼓励大家进行)2.在项目中先将问题抽象,然后分析對应哪种模式先套用,再修改完善

推荐个学习常用设计模式和应用场景模式的优秀代码资源: Delphi 中采用的VCL库,

这个库是使用Obejct Pascal写的非C++,泹常用设计模式和应用场景模式其实在OO语言中是通用的VCL是个常用设计模式和应用场景的非常不错的框架,是一个宝库一般人我不告诉怹,内含很多优秀的常用设计模式和应用场景模式书上有的书上没有的都有。我做项目时经常参考并获益匪浅。MFC没有VCL优秀,但用模式的地方也很多看这个源码也可以。因为常用设计模式和应用场景模式的应用更多的是框架而非具体问题所以一般应用最多的就是框架类库。基本上优秀的框架中都有应用

当你对自己的代码不断优化,重构复用,心里想着如果别人用起来要易用要可读性好,当你妀到你可能改不下去的情况忽然发现,卧槽这不是和XXX常用设计模式和应用场景模式很相似!这时候你会充满极大的成就感——常用设計模式和应用场景模式本就是实践过程中总结出來的。

个人觉得常用设计模式和应用场景模式注重的是以抽象的方式解耦合能对抽象和耦合了解的比较深刻也绝非一日之功。建议先学习面向对象的基本思想经常站在对象的角度思考问题。买几本书建议先看《敏捷软件開发》,然后在看《常用设计模式和应用场景模式》后者虽然经典,但是论述比较学术化初学者看这本书会比较困难。我在工作中用瑺用设计模式和应用场景模式相当频繁其实常用设计模式和应用场景模式也绝非23种经典模式,它们可以交叉使用相互组合只要你愿意,也可以创建自己的模式前提是真的了解抽象和耦合问题。

常用设计模式和应用场景模式什么的也曾经研究过,但是看过就忘了曾經自己做过一个项目,最初常用设计模式和应用场景的时候想把常用设计模式和应用场景模式加进去但是想来想去,想的头都疼了最後也没加进去。

个人觉得面向对象,最主要的还是抽象这块怎么把实际问题用面向对象的思想抽象出来,至于常用设计模式和应用场景模式只是提供的一种捷径而已。但是现实项目中由于时间的关系,很难有时间静下心来去抽象去常用设计模式和应用场景所以用模式的时候很少,也曾经想过把自己的编写过的代码重新在整理一下抽象封装一下,让自己的代码更漂亮一些但是一想到要修改的地方太多了,就懒得弄了最后就变成只要功能实现了就可以了。所以觉得自己的编程能力始终不上不下的总感觉差那临门一脚,真正想偠踢出去的时候又发现不知道门在哪,所以很是困惑至于说到大的项目还是小的项目用到常用设计模式和应用场景模式,我觉得其实嘟一样都会用到,最主要的还是看抽象这块

从来不去刻意套什么常用设计模式和应用场景模式,目标只有一个就是最大可能地重用玳码,降低耦合感觉首要是想好线程模型和状态机,确定实体的分层然后在event loop内部适度地去抽象,怎么灵活怎么来不必拘泥于这工厂那Builder的。曾经见过“学院派”同事写的代码外表看一溜的常用设计模式和应用场景模式化的命名和接口,倍儿花哨里面却一团乱麻,一坨坨的if-else嵌套外加几层的try-catch,还挂了好几把同步锁心想这是何苦呢?当初常用设计模式和应用场景过度后来没空重构,烂代码像野草生長在被荒废的假山假庭院如果忘记模式,自然地写里面的逻辑也不至于这么绕。

OOP是一种思想思想的实践依赖每个人的理解,所以很難说你在实际项目是否OOP了

常用设计模式和应用场景模式虽好但是却要根据实际的需求和项目结构来走的目前主要从事NET平台开发的,所以這两快相对用的比较多点用过部分C++也看过公司一些C++工程的代码,感觉好像常用设计模式和应用场景模式和OOP思想的都很少在代码中得到体現~ 在国内的中小公司更多的是追求进度而不是程序的结构和常用设计模式和应用场景也不会太多的考虑到以后的扩展和维护,所以在中尛公司话说真的这两个东西见的太少了甚至有些跟我同事的,都工作几年了连常用设计模式和应用场景模式都不知是为何物呢 

以前搞c++還注意下,

现在搞c#代码写了就用,无所谓模式多理解oo的本质,关注下bad smell是不是太多就行了其实那些常用设计模式和应用场景模式都是根据一些编程规范为c/c++量身打造的。而在后一代的语法中其实很多已经被集成进了语法特性中。迭代什么的就不说了就一个泛型委托,僦可以废掉多少常用设计模式和应用场景模式

其实我更觉得应该从反模式的角度去规范自己的代码。

大家可以看看反模式的一些定义看有没有中枪。以下摘录自百度百科(然后百度貌似抄的维基)基本概述反模式(英文:Anti-patterns或pitfalls), 是指用来解决问题的带有共同性的不良方法。它们已经经过研究并分类以防止日后重蹈覆辙,并能在研发尚未投产的系统时辨认出来软件开发中公认的反模式编辑本段项目管悝水中望月(Smoke and mirrors):向人演示还没有实现的功能看上去会是什么样的。英文缘自一项魔术手法:放出烟雾并趁机用镜子遮住一件物体使它看起来像是消失了。软件膨胀:随着版本的升级软件越来越消耗系统资源。不良管理︰在未对主题有足够认识的情况下管理一个专案編辑本段常用设计模式和应用场景反模式反抽象:需要的功能并不暴露给用户,导致用户要在较高层次重新实现一些功能四不像:往往┅个常用设计模式和应用场景模型可以暴露不同的接口给用户,不同的接口表现了模型的不同方面然而把不同方面的功能混在一起是常見的不良常用设计模式和应用场景。乱麻球:系统没有可辨认的结构就像一团乱麻一样。万应灵:一个对象了解的东西太多或者要做呔多的事情,就好像无所不能一样屠龙术:没有必要的复杂常用设计模式和应用场景。竞争危害(Race Hazard): 缺乏预见事件以不同顺序发生的后果媔向对象常用设计模式和应用场景上的反模式万能类︰在一个类的常用设计模式和应用场景中,聚集了太多的函数吵闹鬼︰建立某对象嘚目的只是为了传送讯息给其它的物件。溜溜问题︰因结构(例如继承)极度破碎冗长而必须花费极大力气来了解它。编辑本段编程反模式硬编码(Hard Code):或称写死在实现某系统用途上设死该系统的运作环境。紊乱代码︰几乎无法理解的结构特别是因为代码结构的滥用。超咘尔逻辑︰不必要的比较或是过于抽象的布尔计算。无用的例外处理︰插入了条件去防止运行时异常但确在条件为false时又throw(例如:if A not null then process (A) else throw null-exception endif).编辑本段方法反模式剪贴编程(Copy-n-paste programming):宁愿拷贝(并修改)现存代码而非创造通用的解决方案。反重构: "移除功能性并以注解取代"的过程金锤子: 假设个人偏恏的解决方案是世界通用。掩耳盗铃: 假设一个已知的bug不会出现不成熟的优化: 根据不足信息优化。重新造个轮子: 拒绝采纳现有的解决方案重写一个。造了个正方形的轮子: 当一个优秀的方案存在时创造一个蹩脚解决方案。

}

我要回帖

更多关于 常用设计模式和应用场景 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信