设计模式分为三大类:
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
其实还有两类:并发型模式和线程池模式。
设计模式的六大原则:
总原则-开闭原则
对扩展开放,对修改封闭。在程序需要进行拓展的时候,不能去修改原有的代码,而是要扩展原有代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。
想要达到这样的效果,我们需要使用接口和抽象类等,后面的具体设计中我们会提到这点。
1、单一职责原则
不要存在多于一个导致类变更的原因,也就是说每个类应该实现单一的职责,否则就应该把类拆分。
2、里氏替换原则(Liskov Substitution Principle)
任何基类可以出现的地方,子类一定可以出现。里氏替换原则是继承复用的基石,只有当衍生类可以替换基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。
里氏代换原则是对“开-闭”原则的补充。实现“开闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。里氏替换原则中,子类对父类的方法尽量不要重写和重载。因为父类代表了定义好的结构,通过这个规范的接口与外界交互,子类不应该随便破坏它。
3、依赖倒转原则(Dependence Inversion Principle)
面向接口编程,依赖于抽象而不依赖于具体。写代码时用到具体类时,不与具体类交互,而与具体类的上层接口交互。
4、接口隔离原则(Interface Segregation Principle)
每个接口中不存在子类用不到却必须实现的方法,如果不然,就要将接口拆分。使用多个隔离的接口,比使用单个接口(多个接口方法集合到一个的接口)要好。
5、迪米特法则(最少知道原则)(Demeter Principle)
一个类对自己依赖的类知道的越少越好。无论被依赖的类多么复杂,都应该将逻辑封装在方法的内部,通过public方法提供给外部。这样当被依赖的类变化时,才能最小的影响该类。
最少知道原则的另一个表达方式是:只与直接的朋友通信。类之间只要有耦合关系,就叫朋友关系。耦合分为依赖、关联、聚合、组合等。我们称出现为成员变量、方法参数、方法返回值中的类为直接朋友。局部变量、临时变量则不是直接的朋友。我们要求陌生的类不要作为局部变量出现在类中。
6、合成复用原则(Composite Reuse Principle)
尽量首先使用合成/聚合的方式,而不是使用继承。
之前已经陆续整理了9种设计模式,链接如下,接下来一段时间陆续把剩余的过一遍,整理出来,理解设计模式还是很重要的。
还有两类:并发型模式和线程池模式。
原博客地址:http://blog.csdn.net/jason0539/article/details/44956775
相关推荐
此资源包括以下资料: <br>学习GoF设计模式的重要性.txt 设计模式逐个解析.rar 23种设计模式的实现(Java 版).rar DAO设计模式.rar C#设计模式.pdf 新版设计模式手册[C#].pdf JAVA设计模式...
个人搜集整理的23种设计模式,已经认真学习过,很好,与大家共享!
并整理二十三种设计模式的理论部分,综合汇总成这份Java设计模式(疯狂J*va联盟版),希望对大家有所帮助。 本份帮助文档主要是为了向读者介绍二十三种设计模式,包括模式的描述,适用性,模*的组成部分,并附带...
并整理二十三种设计模式的理论部分,综合汇总成这份Java设计模式(疯狂Java联盟版),希望对大家有所帮助。 本份帮助文档主要是为了向读者介绍二十三种设计模式,包括模式的描述,适用性,模式的组成部分,并附带...
并整理二十三种设计模式的理论部分,综合汇总成这份Java设计模式(疯狂J*va联盟版),希望对大家有所帮助。 本份帮助文档主要是为了向读者介绍二十三种设计模式,包括模式的描述,适用性,模*的组成部分,并附带...
1. 设计模式手册:这部分可能详细介绍了23种GOF(GoF,Gang of Four)设计模式,包括每种模式的意图、适用性、结构、参与者、实现方式以及模式之间的关系。对于初学者,它能够提供清晰的概念和实例,帮助理解如何在...
并整理二十三种设计模式的理论部分,综合汇总成这份Java 设计模式(疯狂J*va 联盟版),希望对大家有所帮助。 本份帮助文档主要是为了向读者介绍二十三种设计模式,包括模式的描述, 适用性,模*的组成部分,并附带...
【C语言笔试题汇总整理】 在C语言的笔试题中,常常会涉及到内存管理、程序设计模式、数据结构以及数据库操作等相关知识。以下是一些重要的知识点: 1. **堆和栈的区别** - 栈是自动分配和释放的内存区域,通常...
有感于设计模式在日常开发中的重要性,同时笔者也自觉对设计模式小有心得,故笔者编写二十三种设计模式的简单例子、并整理二十三种设计模式的理论部分,综合汇总成这份Java设计模式(疯狂Java联盟版),希望对大家...
本压缩包"webService汇总整理.rar"提供了关于WebService接口开发的综合资料,帮助开发者更好地理解和应用这一技术。 1. **WebService的基本概念**: WebService是一种基于HTTP协议的网络服务,它通过SOAP(简单...
Java核心知识点整理(包括Java基础、JVM、数据库、计算机网络、算法、操作系统、设计模式、系统设计、框架原理)。 > # 目录结构 > > | :--: | :----: | :--------: | :--: | :------: | :------: | :------: | :--...
自己总结,整理,制作的java设计模式chm,按常用设计模式,依次详细讲解,自己逐条整理,挨篇标注,省去查找的时间成本.自己查看了一下,有个别图片没有显示,不影响整体阅读,请体谅制作chm整理资源的辛苦.今后上传的资源,会...
本资料汇总包含多个PDF文档,旨在帮助初学者深入理解开关电源的基本原理、设计方法以及常见拓扑结构。以下是这些知识点的详细说明: 1. **开关电源基础**:开关电源通过控制开关器件的导通和截止时间来调整输出电压...
8. **设计模式**:单例、工厂、装饰器、观察者、适配器等23种设计模式是面试中常见的问题,理解并能灵活运用它们可以提升代码质量和可维护性。 9. **Spring框架**:作为最流行的Java企业级应用框架,Spring的IoC...
【毕业设计题目汇总】是针对IT专业学生的毕业设计主题集合,涵盖了广泛的领域,主要涉及到嵌入式系统、单片机应用、数字信号处理、通信技术、电子设计等多个方面。以下是一些关键知识点的详细说明: 1. **嵌入式...
Hadoop 提供了三种运行模式: - **独立模式**:单机模式,用于测试和开发。 - **伪分布模式**:在单机上模拟分布式环境,适合学习和测试。 - **完全分布模式**:在多台机器组成的集群上运行,用于生产环境。 ...
Struts2是基于Model-View-Controller(MVC)设计模式的,它将业务逻辑、数据和用户界面分离,提高了代码的可复用性和可维护性。框架提供了一系列的拦截器(Interceptors),这些拦截器在请求处理过程中起到了关键...
这份“jeecg开源框架常用内容汇总整理”文档,无疑是为开发者提供了一份宝贵的参考资料。 首先,让我们深入了解Jeecg框架的核心特性: 1. **代码生成器**:Jeecg的一大亮点是其强大的代码生成器,能够自动生成基于...
整理了框架底层是按技术(包括反射,XML,设计模式)及Redis缓存数据库技术。 Java 反射机制是在运行状态中,对于任意一个类,都能够获得这个类的所有属性和方法,对于任意一个对象都能够调用它的任意一个属性和方法...