设计,是编程语言常提常新的话题了。其实看拿哥们写的代码,自然自己的编程方式和方法也会提高。
好的代码,拓展性强的代码不好写。。。这也是拿哥么自豪的地方,也是经验的结晶。。所以我们也要提高编程能力,才能得到更好的回报和避开麻烦。嘿嘿。那我们就开始把
什么是模式,英语template,模式就是具有代表性,具有举一反三的能力的格式。。。:)
如果看过我写的其他关于模式的文章之后,那读者会认识四人帮的,您会问 啥四人帮,那不是毛老那个时代的么,怎么跑到设计模式里来了。。。嘻嘻,这个您就要看看我写的关于设计模式的文章了。
在这里就简单和大家说说,“四人帮”其实是1995年四个人发布的关于设计模式是书,那个时候还没有java那。。或者java还是新的语言,但设计模式已经出来了,慢慢的个个语言就写了自己的设计模式。其实也就是换汤不换药,一样的东西,用不同的语言实现的。在这里为四人帮众人表示感谢,谢谢他们写了这么好的书,也为其中一位拿哥的逝世感到惋惜。。。
言归正传设计也就是建大楼,谁建的好,谁建的快,谁建的更有扩展性,这是各个老程序员追求的,他们不管新技术,新技术太多谁能学的过来,但编程的能力,老人新人一看就知道。所以让大家都羡慕你的代码。这才是我们追求的。。。
如果感觉性能是后期维护的,那你就错了。性能在设计中,性能也是coding中。。举一个小例子,我想看到这篇文章的哥哥姐姐弟弟妹妹们,嘿嘿,你们是不是都写过这样的代码
while(true/false)
{
//coding
}
以上代码直到false的时候才break出来,对吧。但有没有想过假如true要100次那?或者更高那?
这样的性能能接受么?如果是user是1000000后面的0很多,这样的性能能接受么
其实在while中做个小判断,直接break这样的代码性能上会好一点,或者就用代理模式来做filter是不是更好那
性能其实也在设计里
其实说了那么多主要是软件的维护和可扩展行的分析。。。我旁别的程序员一致同意,软件开发的钱大都用到了软件的运营和维护上了,很少用在开发上,这个是不争的事实,那怎么样钱话的少,维护和增加功能更加方便那
那就要看,初期设计的怎么样,和中期代码实现的怎么样了,我现在就遇到一个很糟糕的代码,维护起来很费劲,增加功能的话,以前的代码耦合性太高了,导致要增加的话,改动很大,可是任务来了,怎么的也要改啊,又堆了很多垃圾代码,有这么一天我实在看不下去了,就和一个同事把其中一块地方改了,现在看上去还行把,只不过内部已经烂了,在怎么搞其实也就那样。。。
所以软件开发不是新人的天下啊,在过个20年,我想我们上一代的老程序员会很抢手的,现在就是。
还有一点,我想在这说明一下,谁说程序员是年轻人的天下,到老了,程序员就不行了。。。这话太天真了。。。这些话也是那些更本就不配当程序员的人说出来的。。。在美国和日本,老程序员多的事,怎么中国就不行了。。
其中有一点还是很正确的,软件盗版其实很不好,这样会影响一个行业的发展的。。。
好了说了这么多,基本思想就是 软件的维护和扩展很重要,为了以后的的维护大家要写出让人羡摹的代码
我们下面就开始:
1.习惯
嘿嘿,我想大家是不是都有个习惯,接到任务上来就开始coding,这么做是错误的,正常的顺序是thinking,designing,coding。按这个顺序写出的代码会比你直接coding的代码好的多。
2.方法
下面我就细细讲讲怎么designing
2.1 抽象是关键
抽象是很关键的,在四人帮的书中,大家会发现有的模式,叫开闭模式,这个和市面上的模式不一样,这也是我写这篇文章的重点。嘻嘻
开闭模式-----------------------------------------对扩展开放,对修改关闭
Software entities should be open for extension and closed for modified
基本实现大概是这样的先抽象一个类,这样扩展的话就很方便,满足开放,修改么,其实大家已经看不来了,在抽象类中修改没有用,修改的业务逻辑都在其实现类中,所以写业务逻辑的类,最好是抽象出来
其实这个模式还有一个别称,可变性封装原则
原则总结:
一种可变性不应当散落在代码的很多角落里
一种可变不应该和另一种可变混在一起
3.重构(业务)
其实大家知道重构是面向对象多态的具体表现,这个模式有松耦合的作用,而且能样繁重的逻辑变的简单
尽量用重构来将逻辑变的少一些,让逻辑去体现子类的个性把
4.接口
接口其实和抽象的概念是一样的,在这里我主要介绍接口的常用做法:
4.1单方法接口:举个例子:Runnable 接口 大家懂的
4.2标识接口:举个例子:Serializable接口
4.3常量接口:有点像枚举,自不过是用来提共同的
5.里氏代原则:
任何基类出现的地方,子类一定可以出现
6.依赖倒转原则
要依赖与抽象,不要依赖于实现
7.合成/聚合服用原则
要尽量使用合成/聚合,而不是继承关系达到复用的目的
8.迪米特法则
一个软件实体应当与尽可能少的其他实体发生相互作用
9.接口隔离原则
尽量使用可能小的单独的接口,而不要提供大的总接口
子类扩展超类的责任
不要从工具类继承
好了以上的原则记住,designing的时候,就会写出很好的代码来。。。嘻嘻
剩下的就是一些设计模式了
网上有很多介绍的,我也写了很多模式的帖子,是转载的,他写的很好。在这里也不做介绍了
在这我给个关于我写的文章的帖子URL 点左右就可以看到四人帮的力作了
Java PatternDesign of GOF(四人帮力作,享誉15年)第十六模式永久链接: http://chenhailong.iteye.com/blog/901766
分享到:
相关推荐
总的来说,《C嵌入式编程设计模式》是一本旨在提升嵌入式系统开发水平的书籍,它将帮助开发者更好地理解如何在C语言环境中应用面向对象的设计原则,从而编写出更加高效、可维护的代码。通过学习这些模式,开发者可以...
深入理解JavaScript设计模式,结合函数式编程思想,能帮助开发者写出更优雅、可读性更强的代码,同时提高代码的复用性和可维护性。对于开发者来说,掌握这些知识不仅能提升个人技术水平,也是在项目开发中解决实际...
总之,《C++设计新思维:泛型编程与设计模式之应用》是一本将理论与实践完美结合的作品,它不仅适合那些初入编程领域的新人,也适用于那些希望提高自身技能的资深开发者。通过这本书,读者将能够更好地利用C++的泛型...
总的来说,这个系列的讲座旨在通过实例和深入讲解,帮助开发者掌握C++设计模式的应用,理解高级编程技巧,从而提升软件开发的专业水平和代码质量。通过学习这些内容,开发者不仅能编写出更高效、更易于维护的代码,...
通过学习和应用这些设计模式,开发者不仅可以提高代码的可读性、可维护性和可扩展性,还能提升团队间的沟通效率,因为设计模式是软件工程中的通用语言。对于任何有志于提升软件开发水平的人来说,理解和掌握设计模式...
结合《Head First 设计模式》的生动讲解和《Java设计模式(第2版)》的具体实现,开发者可以更好地将设计模式融入到自己的编程实践中,提升软件开发的专业水平。 总的来说,这两本书是Java开发者提升设计能力的必备...
《Cpp设计新思维_泛型编程与设计模式之应用》这本书深入探讨了C++编程中的泛型编程和设计模式的应用,对于提升C++开发者的技术水平具有极高的价值。以下是本书涉及的一些关键知识点: 1. 泛型编程:泛型编程是C++中...
学习设计模式可以提高编程者的编码能力和设计水平,减少代码重复和维护难度。通过本文,我们将探讨学习设计模式的必要性,并通过三个例子来展示设计模式在实践中的应用。 一、代码量激增、程序可维护性面临挑战 在...
在面试中,设计模式通常被用来评估候选人的设计能力和对面向对象编程的理解。例如,你可以被问及如何使用工厂模式来替代大量的if-else语句,或者如何利用观察者模式实现事件驱动的系统。 在实际工作中,设计模式...
设计模式可以帮助开发者遵循良好的编程实践,提高代码的可读性、可维护性和可复用性,同时降低项目的复杂度。通过《设计模式解析》和《Java设计模式》这两本书的学习,开发者能够掌握一套标准的、被广泛接受的解决...
"经典设计模式 提高软件架构能力"这一主题旨在帮助开发者通过学习和应用这些模式,提升其软件架构的设计和实现水平。双语版本的资料更是提供了一个宝贵的机遇,不仅可以深化对设计模式的理解,还能同步提升专业英语...
此外,设计模式的学习不仅有助于提升个人的编程技能,对于团队开发来说同样重要。当团队成员都熟悉并能有效地使用设计模式时,他们能够更好地理解彼此的代码结构,预测代码的行为,从而提高团队的工作效率和代码质量...
设计模式是软件工程中的一个重要概念,尤其在面向对象编程领域扮演着关键角色。正如标题“设计模式中文书籍”所揭示的,这类书籍旨在帮助软件开发人员更好地理解和运用设计模式,提升软件设计的质量。 #### 二、...
通过学习这两本书,读者不仅可以掌握JavaScript的面向对象编程基础,还能了解到如何在实际项目中应用设计模式,从而提升开发水平和团队协作效率。无论是初学者还是有经验的开发者,都能从中受益匪浅,为构建高质量的...
《Delphi模式编程》是刘艺撰写的一本深入探讨Delphi编程技术的书籍,特别强调了软件设计模式在Delphi开发中的应用。这本书的核心目的是帮助开发者理解和应用各种设计模式,以提升Delphi软件项目的可维护性、扩展性和...
在编程领域,设计模式是解决常见问题的经过验证的、可重用的解决方案。它们是经验丰富的软件开发人员智慧的结晶,旨在提高代码的可读性、可维护性和复用性。Java作为广泛使用的面向对象编程语言,设计模式在其中扮演...
总之,"设计模式汇总_圣思园Java版"是一个全面的学习资源,它涵盖了UML、Java代码和理论解析,对于想要深入理解和掌握设计模式的Java开发者来说,是一份宝贵的资料。通过学习和实践,开发者可以更好地应对各种软件...
《OC编程之道:iOS设计模式源码》是深入理解Objective-C(OC)编程语言和iOS应用开发中的设计...《OC编程之道:iOS设计模式源码》正是这样一个宝贵的资源,提供了丰富的实践案例,有助于iOS开发者提升自己的技术水平。
设计模式是解决特定问题的通用解决方案,使用设计模式能减少僵化性、脆弱性、牢固性、粘滞性、不必要的复杂性和重复性,以及晦涩性。设计模式的描述包括意图、别名、动机、适用性、结构、参与者、协作、效果、实现、...