学习设计模式链接:http://blog.csdn.net/zhangerqing/article/details/8239539
1.工厂模式
1.1 工厂方法模式 (一个类专门管理构造方法)
1.1.1普通工厂模式(一个工厂类中只有一个方法,这个方法根据参数可以创建不同对象)
1.1.2多工厂模式(一个工厂类中有多个方法,每个方法创建不同的对象,避免打字母出错)
1.1.3静态工厂模式(将工厂类中的方法变成静态方法)
1.2 抽象工厂模式 (将工厂由类变为接口,将类中的方法变为类)
本质:通过接口降低耦合性,用一个专门的东西来管理具体实现的方法.
2单例模式
单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM
中,该对象只有一个实例存在。这样的模式有几个好处:
2.1、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。
2.2、省去了new操作符,降低了系统内存的使用频率,减轻GC压力。
2.3、有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统
完全乱了。(比如一个军队出现了多个司令员同时指挥,肯定会乱成一团),所以只有使用单
例模式,才能保证核心交易服务器独立控制整个流程。
2.1.1在Java指令中创建对象和赋值操作是分开进行的
2.1.2也就是说instance = new Singleton(),语句是分两步执行的。
2.1.3.JVM并不保证上面两个操作的先后顺序
2.1.4.因此,如果有多线程,有可能发生下列情况,a线程执行instance = new Singleton(),
但还 没有初始化就离开了线程.b线程跟着就进去程序,因为instance不是null,就不会执行
任何 东西,最后要使用instance这个对象的时候,分配了内存空间,但是没有初始化,就会报
错
2.1.5.解决方案:实际情况是,单例模式使用内部类来维护单例的实现
2.1.6.方案原因: JVM内部的机制能够保证当一个类被加载的时候,这个类的加载过程是线程
互斥的。所以用内部类保证了对象一定会初始化
3.建造者模式
工厂模式关注的是创建单个产品,一行代码new出来
建造者模式更注重控制复杂对象的构造环节,不同的constructor构建不同的对象(类似组装工厂)
4.原型模式
该模式的思想就是将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对
象。
5.适配器模式
一个a接口的实现类,要用到a接口中没有,而b类中有的方法,怎么办? 适配器模式
6.装饰者模式,装饰对象持有被装饰对象的实例,然后动态扩展被装饰对象的功能
代理模式:模仿出一个代理类,替代原类执行一些操作
7. 桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化,像我们常用的JDBC桥DriverManager一样,JDBC进行连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不用动,原因就是JDBC提供统一接口,每个数据库提供各自的实现,用一个叫做数据库驱动的程序来桥接就行了。
8.策略模式
定义了一系列的算法,都有相同的方法名,用户决定具体使用哪个
比如
public interface ICalculator {
public int calculate(String exp);
}
public class Plus extends AbstractCalculator implements ICalculator {....} //加法
public class Minus extends AbstractCalculator implements ICalculator {...} //减法
public class Mutiply extends AbstractCalculator implements ICalculator {...} //乘法
他们都有一个方法叫 calculate()
用户决定使用哪个,就调用哪个的方法,比如new plus().calculate()
new Minus().calculate()
相关推荐
总结来说,李建忠先生的“设计模式总结”涵盖了C#中广泛使用的设计模式,强调了它们在实际项目中的应用价值。理解并熟练运用这些模式,对于提升C#开发者的专业素养和项目质量具有重大意义。无论是初学者还是经验丰富...
本篇文章将对一系列重要的C#面向对象设计模式进行总结,帮助开发者更好地理解和应用这些模式。 1. 工厂模式:工厂模式是一种创建型设计模式,提供了一种创建对象的最佳方式,通过抽象工厂接口,避免了代码与具体类...
设计模式是软件开发中的宝贵财富,它是一种在特定情境下解决常见问题的模板,通过将通用解决方案模式化,使得开发者可以快速应对复杂的设计挑战。在本文中,我们将深入探讨三种重要的设计模式:抽象工厂模式、策略...
设计模式总结 设计模式是软件设计中一种常见的解决方案,它们可以帮助开发者写出更加灵活、可维护、可扩展的代码。设计模式可以分为三大类:创建型模式、结构型模式和行为型模式。 创建型模式 创建型模式关心对象...
大话设计模式总结.pdf大话设计模式总结.pdf大话设计模式总结.pdf大话设计模式总结.pdf大话设计模式总结.pdf
设计模式总结,对23种经典模式的分类,各自的使用方法,优缺点进行详细的描述。
本总结文档涵盖了所有的设计模式,并对常用的模式进行了详细解释,非常适合程序员在面试前快速复习以及日常学习使用。 文档中提到的六大设计原则,包括单一职责原则、里氏替换原则、接口隔离原则、迪米特法则、开闭...
在《23种设计模式总结及案例》中,通常会涵盖以下主要的设计模式类型: 1. 创建型模式:这类模式主要关注对象的创建过程,使得系统在不指定具体类的情况下创建对象,提高代码的灵活性。包括单例模式(Singleton)、...
Java设计模式是软件工程中的一种最佳实践,它们是解决常见编程问题的经验总结,可以提高代码的可重用性、可维护性和可扩展性。这里主要针对标题“Java设计模式总结”以及描述中提及的资源进行深入阐述。 1. **设计...
设计模式是软件开发中的一种最佳实践,它是在特定上下文中解决常见问题的模板或蓝图,可以被反复使用,以提高代码的可读性、可维护性和灵活性。在Java编程中,23种经典的设计模式被广泛认可并应用,这些模式分为三大...
设计模式总结主要包括创建型、结构型和行为型这三大类,每类模式都有其特定的应用场景和目标。 1. 创建型模式(创建对象的模式) - 工厂方法模式:允许将对象的创建过程推迟到子类中,使得代码更具可扩展性和灵活...
设计模式总结 设计模式是软件设计中的一种重要概念,它们是经过实践和经验总结出的优秀设计解决方案。设计模式的应用可以使软件设计更加灵活、可维护、可扩展和可重用。本文档对设计模式进行了总结和归纳,主要包括...
自己根据老师的课件的和讲解,总结的关于程序设计模式的知识,拿出来和大家分享一下,希望能帮到和我一样,在学设计模式时遇到困难的同学。
### 设计模式总结篇 #### 引言 在软件开发领域,设计模式作为一种重要的方法论,对于提升软件质量、增强代码可维护性和可扩展性具有不可替代的作用。本文旨在总结和探讨设计模式的相关知识,包括架构设计原则、...
在Java编程领域,设计模式是解决常见问题的模板,它们是经过时间和实践验证的最佳实践。以下是对Java中常用设计模式的详细解释: 1. **单例模式**:单例模式确保一个类只有一个实例,并提供一个全局访问点。这种...
### 设计模式总结:模板设计模式与单例模式 #### 模板设计模式 模板设计模式是一种行为型设计模式,它定义了一个算法的骨架,并允许子类为算法的某些步骤提供具体的实现。通过这种方式,算法的基本流程保持不变,...
Spring设计模式总结 在软件开发中,设计模式是解决常见问题的经验总结,它们为程序员提供了在特定场景下设计高效、可维护代码的蓝图。在Spring框架中,许多设计模式被广泛应用,以提升系统的灵活性和可扩展性。以下...
java23种设计模式总结 . 设计模式 1.1 创建型模式 1.1.1 工厂方法 1.1.2 抽象工厂 1.1.3 建造者模式 .. 1.1.4 单态模式 .. 1.1.5 原型模式 . 1.2 结构型模式 ... 1.2.1 适配器模式 1.2.2 桥接模式 ........
《.Net 面向对象及设计模式总结》是一份深度涵盖.Net开发中面向对象编程原理和设计模式的宝贵资料,特别适合初学者巩固基础知识,以及有经验的开发者进行复习和提升。通过阅读这些笔记,我们可以深入理解面向对象的...