JAVA 啥是设计模式,请举例说明其中一个。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA 啥是设计模式,请举例说明其中一个。相关的知识,希望对你有一定的参考价值。
如题。 什么是设计模式,请举例说明其中一个。
设计模式(Design Patterns)——可复用面向对象软件的基础
设
计模式(Design
pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代
码可靠性。
毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用
设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决
方案,这也是它能被广泛应用的原因。
一、设计模式的分类
总体来说设计模式分为三大类:
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
其实还有两类:并发型模式和线程池模式。
例子:
单例模式(Singleton)
单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这样的模式有几个好处:
1、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。
2、省去了new操作符,降低了系统内存的使用频率,减轻GC压力。
3、有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统完全乱了。(比如一个军队出现了多个司令员同时指挥,肯定会乱成一团),所以只有使用单例模式,才能保证核心交易服务器独立控制整个流程。
首先我们写一个简单的单例类:
[java] view plaincopy
public class Singleton
/* 持有私有静态实例,防止被引用,此处赋值为null,目的是实现延迟加载 */
private static Singleton instance = null;
/* 私有构造方法,防止被实例化 */
private Singleton()
/* 静态工程方法,创建实例 */
public static Singleton getInstance()
if (instance == null)
instance = new Singleton();
return instance;
/* 如果该对象被用于序列化,可以保证对象在序列化前后保持一致 */
public Object readResolve()
return instance;
参考技术A 设计模式就是设计程序的一种方法的总结,比如单例模式
public class A
private static final A a = new A() ;
private A()
public static A getInstance()
return a ;
这样A永远只能有一个实例,因为他的构造方法已经是私有的,必须通过方getInstance方法来获取实例而且无论是多线程还是单线程无论获得多少次只有一个A的对象在为你服务。本回答被提问者采纳 参考技术B 设计模式是不限定某种开发语言的 就是把解决某一类问题的方法抽象成一种固定的模式 参考技术C 布局管理器是策略模式
swing组件式MVC模式、观察者模式
边框是修饰模式 参考技术D 面向对象,区别于c的面向过程
举例简要说明啥是聚合关系,掌握聚合关系具有啥样的意义
参考技术A 楼主所说《语言学纲要》应该是徐通锵和叶蜚声所著的.其中组合关系的定义为语言符号在线性序列中与相邻语言符号的一种横向关系.也有其他教材解释为语言符号之间形成的言语链条的关系.(这个说法存在于岑云强《语言学基础理论》)
聚合关系定义为语言符号因为某种共同符号而在人们记忆中形成的纵向的类聚关系.也有其他教材解释为语言链条中某一环节可以替换的符号的聚合关系.(这个说法存在于岑云强《语言学基础理论》)
最形象的例子就是表格:
组合关系
————————
|聚
小王
看
电影
|合
学生
学习
英语
|关
孩子
吃
苹果
|系
横向的句子,就是我们说得言语链条就体现了语言符号的组合关系.纵向的作主语的小王,学生,孩子,是主语可以再言语链条中替换的词的聚合,就是我们说的聚合关系.看,学习,吃;电影,英语,苹果;也是一样.一共三组.
以上是关于JAVA 啥是设计模式,请举例说明其中一个。的主要内容,如果未能解决你的问题,请参考以下文章