大家都知道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. 海量数据集利用Minhash寻找相似的集合【推荐优化】

    MinHash 首先它是一种基于 Jaccard Index 相似度的算法,也是一种 LSH 的降维的方法,应用于大数据集的相似度检索.推荐系统.下边按我的理解介绍下MinHash 问题背景 给出N个 ...

  2. HTML 部分常用属性、组成属性|...超链接、路径、锚点、列表、滚动、URL编码、表格、表单、GET和POST

    URL地址 就是我们所说的网址:www.jd.com 浏览器内核,渲染引擎 Ie内核:triteent 谷歌/欧鹏:blink 火狐:gecko 苹果:webkit 渲染引擎是出现兼容性的根本问题 - ...

  3. 深入React组件生命周期

    上篇博文使用React开发的一些注意要点对React开发的一些重点进行了简单的罗列总结,虽然也提到了React生命周期,但只略微小结,在此单独写篇React生命周期的总结. 在组件的整个生命周期中,随 ...

  4. post和get请求的区别

    post和get请求的区别: 1.post发送的数据在请求体中,用户看不到 get发送的数据在地址栏中 2.post请求中有content-type,作用是告诉服务器,发送给服务器的数据格式,是和ur ...

  5. 网页html结构搭建方法总结

    在div+css布局中,一般都这样来整体构架的: <div id="header"></div><div id="center"& ...

  6. 关于JDEV的连接问题

    在JDev中有两个连接数据哭库的地方,双击项目名称,里面的Business Components里面的Connection里面的链接,这个链接是Run页面时候的链接 第二个链接在Oracle Appl ...

  7. C++ 拷贝控制和资源管理,智能指针的简单实现

    C++ 关于拷贝控制和资源管理部分的笔记,并且介绍了部分C++ 智能指针的概念,然后实现了一个基于引用计数的智能指针.关于C++智能指针部分,后面会有专门的研究. 通常,管理类外资源的类必须定义拷贝控 ...

  8. 老李分享:Python开发性能测试脚本

    老李分享:Python开发性能测试脚本   测试开发工程师的工作主要是根据测试目标来完成,帮助测试人员完成测试目标,测试的业务需求是测试人员提出,但是由于环境的制约,手中没有性能测试工具的时候,性能测 ...

  9. 每天学点python-入门

    最近就像学点脚本语言,大家都推荐python,准备每天学点python吧~ 1. python的执行过程 1)先将脚本编译成字节码 2)python虚拟机解释并运行字节码文件 2. python在赋值 ...

  10. laravel redis Error while reading line from the server.

    代码运行一段时间后,会报下面的错误. [Predis\Connection\ConnectionException] Error while reading line from the server. ...