大家都知道Java23种设计模式,大神总结如下:

创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

各种设计模式的原理和要点大神zhangerqing的原创博文系列已有讲解,贴一下,遗忘了就去复习

http://blog.csdn.net/zhangerqing/article/details/8194653 【Java之美[从菜鸟到高手演变]之设计模式】创建型模式

http://blog.csdn.net/zhangerqing/article/details/8239539 【Java之美[从菜鸟到高手演变]之设计模式二】结构型模式

http://blog.csdn.net/zhangerqing/article/details/8243942【Java之美[从菜鸟到高手演变]之设计模式三】行为型模式

http://blog.csdn.net/zhangerqing/article/details/8245537【Java之美[从菜鸟到高手演变]之设计模式四】行为型模式二

设计模式的六大原则:

1、开闭原则(Open Close Principle)。开闭原则就是说对扩展开放,对修改关闭。

2、里氏代换原则(Liskov Substitution Principle)。里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。

3、依赖倒转原则(Dependence Inversion Principle)。这个是开闭原则的基础,具体内容:针对接口编程,依赖于抽象而不依赖于具体。

4、接口隔离原则(Interface Segregation Principle)。这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。

5、迪米特法则(最少知道原则)(Demeter Principle)。一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。

6、合成复用原则(Composite Reuse Principle)。原则是尽量使用合成/聚合的方式,而不是使用继承。

人们总结以上设计模式的原则主要从工作经验中来,考虑如下两点:

一、扩展性。扩展性可谓当前企业级项目必备,个人项目做实验或兴趣扩展性可能在易编程性之后,想要尽快做出东西,看看效果玩一玩。企业级项目可不同,一定是针对直接客户的需求为目标,而且这个需求会随着调研深浅和市场竞争有很大差异,目前中国市场竞争之激烈,一个小项目第一个月调研出来的结果可能是两个核心需求,第二个月就会多出有上十个配套需求了,在系统上线半年之后还可能有好几个补充需求。那么这个项目无论从架构上还是功能模块上,都需要具备很好的扩展性。

二、稳定性。一个项目上线对外提供服务,出现故障一般有几种情况:编程质量不高导致内存泄漏或运行缓慢,网络带宽/数据库/服务器硬件性能导致系统崩溃,还有就是更新版本导致性能或功能问题。在高速发展的业务场景下,版本更新产生的问题比前两种药常见得多,而且更为严重。本身没有什么大漏洞的系统,由于更新版本出现功能性漏洞的情况屡见不鲜。如何避免这类问题,其实就是新功能不要影响旧功能,那怎么样新功能才不会影响旧功能呢?利用Java的继承的接口实现特性,尽量不要去改现有的类,即使要改现有的类,也不要去改现有的函数。使用新的类和新的函数去实现新功能。

Java设计模式随笔的更多相关文章

  1. JAVA设计模式——代理(动态代理)

    传送门:JAVA设计模式——代理(静态代理) 序言: 在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring ...

  2. java设计模式- (1)单例模式

    参加校园招聘的笔试,发现公司都会考一些java设计模式,所以上网查询相关内容,总结常用的几种单例模式. 单例模式(Singleton Pattern)是 Java中最简单的设计模式之一.这种类型的设计 ...

  3. JAVA 设计模式 桥接模式

    用途 桥接模式 (Bridge) 将抽象部分与实现部分分离,使它们都可以独立的变化. 桥接模式是一种结构式模式. 结构

  4. java设计模式 策略模式Strategy

    本章讲述java设计模式中,策略模式相关的知识点. 1.策略模式定义 策略模式,又叫算法簇模式,就是定义了不同的算法族,并且之间可以互相替换,此模式让算法的变化独立于使用算法的客户.策略模式属于对象的 ...

  5. Java设计模式之行为型模式

    行为型模式共11种:策略模式.模板方法模式.观察者模式.迭代子模式.责任链模式.命令模式.备忘录模式.状态模式.访问者模式.中介者模式.解释器模式. 策略模式:策略模式的决定权在用户,系统本身提供不同 ...

  6. Java设计模式(三) 抽象工厂模式

    原创文章,同步发自作者个人博客,转载请注明出处 http://www.jasongj.com/design_pattern/abstract_factory/ 抽象工厂模式解决的问题 上文<工厂 ...

  7. Java设计模式(十二) 策略模式

    原创文章,同步发自作者个人博客,http://www.jasongj.com/design_pattern/strategy/ 策略模式介绍 策略模式定义 策略模式(Strategy Pattern) ...

  8. Java设计模式(二) 工厂方法模式

    本文介绍了工厂方法模式的概念,优缺点,实现方式,UML类图,并介绍了工厂方法(未)遵循的OOP原则 原创文章.同步自作者个人博客 http://www.jasongj.com/design_patte ...

  9. Java设计模式(一) 简单工厂模式不简单

    摘要:本文介绍了简单工厂模式的概念,优缺点,实现方式,以及结合Annotation和反射的改良方案(让简单工厂模式不简单).同时介绍了简单工厂模式(未)遵循的OOP原则.最后给出了简单工厂模式在JDB ...

随机推荐

  1. 实现Unity编辑器模式下的旋转

    最近在做一个模型展示的项目,我的想法是根据滑动屏幕的x方向差值和Y方向的差值,来根据世界坐标下的X轴和Y轴进行旋转,但是实习时候总是有一些卡顿.在观察unity编辑器下的旋转之后,发现编辑器下的旋转非 ...

  2. 读书笔记 effective c++ Item 36 永远不要重新定义继承而来的非虚函数

    1. 为什么不要重新定义继承而来的非虚函数——实际论证 假设我告诉你一个类D public继承类B,在类B中定义了一个public成员函数mf.Mf的参数和返回类型并不重要,所以假设它们都是void. ...

  3. 英伟达CUVID硬解,并通过FFmpeg读取文件

    虽然FFmpeg本身有cuvid硬解,但是找不到什么好的资料,英伟达的SDK比较容易懂,参考FFmpeg源码,将NVIDIA VIDEO CODEC SDK的数据获取改为FFmpeg获取,弥补原生SD ...

  4. js简单省级联动菜单

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. 维护Study

    ##老师发了一个study来让我们纠错维护,整个软件是日程管理系统,分为欢迎界面,登录 注册界面,提醒界面添加日程界面,还有个人中心等.一些主要代码老师让我们把缺失部分去维护.首先我们读一下主要代码# ...

  6. 学习Redux之分析Redux核心代码分析

    1. React,Flux简单介绍 学习React我们知道,React自带View和Controller库,因此,实现过程中不需要其他任何库,也可以独立开发应用.但是,随着应用程序规模的增大,其需要控 ...

  7. ABP入门系列(15)——创建微信公众号模块

    ABP入门系列目录--学习Abp框架之实操演练 源码路径:Github-LearningMpaAbp 1. 引言 现在的互联网已不在仅仅局限于网页应用,IOS.Android.平板.智能家居等平台正如 ...

  8. CSS3学习笔记(3)-CSS3边框

    p{ font-size: 15px; } .alexrootdiv>div{ background: #eeeeee; border: 1px solid #aaa; width: 99%; ...

  9. Android内存优化之OOM

    内容大多都是和OOM有关的实践总结概要.理解错误或是偏差的地方,还请多包涵指正,谢谢!本人Q:1524447071 (一)Android的内存管理机制 Google在Android的官网上有这样一篇文 ...

  10. 1102: 零起点学算法09——继续练习简单的输入和计算(a-b)

    1102: 零起点学算法09--继续练习简单的输入和计算(a-b) Time Limit: 1 Sec  Memory Limit: 520 MB   64bit IO Format: %lldSub ...