面试时候问到Builder模式,没答上来,受打击了,so,再把设计模式资料学习一遍。设计模式就是OO思想的升华,如果Java基础够好,面向对象思想理解够深入,一些模式在编程实践中自然就会用出来。
这个代码中,包括了大部分模式的代码。
还有一个教训就是:尽量看英文资料,许多地方比中文资料写的要明白清楚。
-------------------------------------------------
/**
* 声明代码及资料大多都是源自网上,并非我原创;有些已指明出处,有些未指明;不一一感谢,此为声明。
* Version: 0.0.1
*/
创建类型的模式包括
· 工厂模式 (Factory Pattern) - 根据工厂模式实现的类可以根据提供的数据生成一组类中某一个类的实例,而这一组类有一个公共的抽象父类。
· 抽象工厂模式 (Abstract Factory Pattern) - 抽象工厂模式也可以根据提供的数据生成一组类中某一个类的实例,而这一组类有一个公共的抽象父类。只不过它定义的是一个接口。
· 单例模式 (Singleton Pattern) - 根据单一模式实现的类只允许有一个是类,并且提供了一个全局指针来引用该实例。
· 原型模式 (Prototype Pattern) - 原型模式通过对类的实例进行拷贝来创建新的实例。
· 创建者模式 (Builder Pattern) - 构造者模式将一个复杂对象的构造过程和它的表现层分离开来,这样类就可以根据不同情况展现出不同的表现方式。
结构类型的模式
结构类型的模式将类和对象组合起来,以构成更加复杂的结构。它又被划分为类模式和对象模式。类模式和对象模式之间的区别在于类模式通过继承关系来提供有效的接口;
而类模式通过对象合成或将对象包含在其它对象中的方式构成更加复杂的结构。
· 适配器模式 (Adapter Pattern) - 适配器模式可以将一个类的接口和另一个类的接口匹配起来。
· 桥接模式 (Bridge Pattern) - 桥梁模式对客户端程序提供一个固定的接口,但是允许开发人员变化实际的实现类。这样开发人员就可以将接口是具体的实现类分离开来。
· 组合模式 (Composite Pattern) - 复合模式可以将多个对象进行复合,其中的每个对象可以是简单对象,也可以是复合对象。
· 代理模式 (Proxy Pattern) - 代理模式利用一个简单的对象替代一个复杂的对象,当复杂对象在需要的时候才会被加载到系统中,这样可以节约系统资源,提高系统的响应速度。在网络环境中这种模式很有用处。
· 装饰模式 (Decorator Pattern) - 通过修饰模式,开发人员可以在运行时将特定的功能绑定在对象上。
· 轻量模式 (Flyweight Pattern) - 轻量模式通过将对象中的一部分数据保存在对象外,在调用对象中的方法时再将这些数据传回对象。这样做可以减少大量比较简单的对象占用的空间。
· 门面模式 (Facade Pattern) - 正面模式将复杂的类层次结构组织起来,通过一个简单的接口来获得层次结构中的数据。
行为类型的模式
行为类型的模式主要是那些处理对象之间通讯的模式,该类型的包括以下模式
· 观察者模式 (Observer Pattern) - 观测者模式可以在发生变化时将变化通知多个类。
· 中介者模式 (Mediator Pattern) - 中介模式可以通过一个中间类来控制若干个类之间的通讯,并且这些类相互之间不需要了解对方的信息。
· 访问者模式 (Visitor Pattern) - 访问者模式通过一个访问类来访问其他类中的数据。
· 备忘录模式 (Memento Pattern) - 回忆模式可以在不破坏对象封装性的前提下保存和恢复对象的内部状态。
· 责任链模式 (Chain of Responsibility) - 职责链模式将请求传递给一组对象,只有特定的对象才会处理该请求。这样就进一步削弱类之间的联系。
· 命令模式 (Command Pattern) - 命令模式将请求传递给特定的对象,这样客户端即使在不知道服务器端如何处理请求的情况下也可以发送请求。
· 模板模式 (Template Pattern) - 模板模式提供了对算法的抽象定义。
· 策略模式 (Strategy Pattern) - 策略模式定义了一组算法,将每个算法都封装起来,并且使它们之间可以互换。策略模式使这些算法在客户端调用它们的时候能够互不影响地变化。
· 状态模式 (State Pattern) - 状态模式将一个类实例的变量保存在独立的内存空间中。
· 迭代模式 (Iterator Pattern) - 迭代模式在不知道数据的内部表现形式的前提下,通过标准的接口来遍历数据集合中的数据。
· 解释器模式 (Interpreter Pattern) - 定义语言的文法,并且建立一个解释器来解释该语言中的句子.
- src2.zip (38.3 KB)
- 描述: 设计模式的练习代码
- 下载次数: 522
分享到:
相关推荐
在"python设计模式-练习代码"这个压缩包中,我们可以预期包含了一系列实现不同设计模式的Python代码示例。这些模式可能包括但不限于: 1. **单例模式**:确保一个类只有一个实例,并提供全局访问点。在Python中,...
在这个"设计模式练习"中,我们主要关注的是Java编程语言中的设计模式应用。 首先,我们要了解设计模式的三大类别:创建型模式、结构型模式和行为型模式。创建型模式如单例(Singleton)、工厂方法(Factory Method...
读书笔记:设计模式初学代码大话设计模式初学练习
- 通过编写代码实现各种设计模式,提高代码复用性与可维护性。 - 学会分析现有系统,提出改进方案,优化软件架构。 通过这些练习,学习者能够深入理解设计模式和体系结构的概念,提升软件开发的专业技能。同时,...
本资源"软件设计模式与体系结构课后习题代码(孙玉山).zip"包含了孙玉山教授讲解课程的配套练习代码,旨在帮助学习者深入理解并实践这些关键概念。 首先,我们要讨论的是“软件设计模式”。设计模式是一种在特定情境...
本文将深入探讨Java基础练习代码中的关键概念,帮助初学者巩固基础,提高编程技能。 首先,Java是一种面向对象的编程语言,它的核心特性包括封装、继承和多态。在练习代码中,你会看到如何定义类(class)并创建...
设计模式是软件工程中的一...总之,"计算机相关专业设计模式练习"是一个深入理解并熟练运用设计模式的良好机会。通过这些练习,你将能够更好地应对软件开发中的各种挑战,编写出更具灵活性、可扩展性和可维护性的代码。
文件名:JAVA设计模式系列练习题含答案.rar文件类型:word格式使用方式:直接解压,无密码
《Head First Java设计模式源代码》是一本专为初学者设计的编程书籍,它通过直观易懂的方式介绍了Java编程中的设计模式。设计模式是软件工程中的一种最佳实践,是解决常见问题的经验总结,旨在提高代码的可重用性、...
在软件开发领域,设计模式是经过时间和实践验证的解决方案,用于解决常见的编程问题。这个“多种设计模式综合练习”...通过这个练习,你可以学习到如何在实际项目中有效地应用设计模式,以优化代码结构和提高代码质量。
读书笔记:《图解设计模式》练习代码
"软件设计模式课后作业代码"是针对学习设计模式过程中进行的实践练习,通过编写代码来加深对各种设计模式的理解。 在本课程中,学生可能已经接触了多种设计模式,如工厂模式、单例模式、观察者模式、适配器模式、...
在这个"C#源代码-简单工厂设计模式练习"中,我们可以深入理解如何在C#中实现这个模式。 简单工厂模式的核心思想是通过一个工厂类来负责创建对象,而不是让客户端直接实例化具体的产品类。这样做的好处在于它可以将...
设计模式帮助开发者处理常见的软件设计难题,确保代码的可读性、可维护性和可扩展性。 ### 2. 面向对象的基本原则 面向对象编程(OOP)的基本原则包括继承、封装和多态性等。题目中的选项 C “里氏替换原则”强调了...
这个压缩包“设计模式2018”可能包含了关于设计模式的PPT讲解、示例代码以及学生的平时作业,这些都是理解和掌握设计模式的宝贵资源。 设计模式通常分为三大类:创建型模式、结构型模式和行为型模式。创建型模式...
这个目录可能包含了一些专门的模式练习,可能包括一些高级设计模式,如复合模式、访问者模式或状态模式等,旨在帮助开发者熟练掌握设计模式的使用。 6. **teachingmaterialpratice**: 教学材料的实践部分,这...
以上三个设计模式都是面向对象设计的重要组成部分,它们在实际项目中有着广泛的应用,可以帮助我们写出更灵活、可维护的代码。通过练习这些模式,开发者可以提升对软件设计的理解,提高代码质量。
设计模式是软件工程中的一种重要概念,它代表了在特定情境下解决问题的优秀实践和可重用解决方案。...这个实训教程将是你学习和掌握设计模式的一个宝贵资源,通过实战练习,你将更好地将理论知识转化为实践技能。
《吉林大学软件设计模式代码解析》 在软件开发领域,设计模式是一种被广泛接受和使用的解决方案模板,它针对常见的设计问题提供了经过验证的最佳实践。吉林大学的这些代码资源,主要涵盖了多个设计模式的实例,旨在...
"C#练习代码总结代码"是针对初学者和有一定基础的开发者设计的一系列实践项目,旨在通过实际编码来巩固和提升C#技能。这个压缩包中包含的"c#_Txt"可能是一个文本文件集合,里面包含了各种C#编程的示例代码和练习。 ...