设计模式(要提高编程水平进)

     设计,是编程语言常提常新的话题了。其实看拿哥们写的代码,自然自己的编程方式和方法也会提高。

好的代码,拓展性强的代码不好写。。。这也是拿哥么自豪的地方,也是经验的结晶。。所以我们也要提高编程能力,才能得到更好的回报和避开麻烦。嘿嘿。那我们就开始把

     什么是模式,英语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

你可能感兴趣的:(Java,PatternDesign,设计模式,编程)