java设计模式0--设计模式简介

简介:
+关注继续查看

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。

设计模式的起源

 软件领域的设计模式起源于建筑学。

 1977年,建筑大师Alexander出版了《A Pattern Language:Towns, Building, Construction》一书。受Alexander著作的影响 ,Kent Beck和Ward Cunningham在1987年举行的一次面向对象的会议上发表了论文:《在面向对象编程中使用模式》。

设计模式的分类

1.创建型模式

社会化的分工越来越细,自然在软件设计方面也是如此,因此对象的创建和对象的使 用分开也就成为了必然趋势。对象的创建会消耗掉系统的很多资源,所以单独对对象的创建进行研究,从而能够高效地创建对象就是创建型模式要探讨的问题。这里 有5个具体的创建型模式可供研究,它们分别是:

工厂方法模式(Factory Method)

抽象工厂模式(Abstract Factory)

创建者模式(Builder)

原型模式(Prototype)

单例模式(Singleton)

2.结构型模式

在解决了对象的创建问题之后,对象的组成以及对象之间的依赖关系就成了开发人员关注的焦点,如何设计对象的结构、继承和依赖关系会影响到后续程序的 维护性、代码的健壮性、耦合性等。对象结构的设计很容易体现出设计人员水平的高低,这里有7个具体的结构型模式可供研究,它们分别是:

外观模式(Facade)

适配器模式(Adapter)

代理模式(Proxy)

装饰模式(Decorator)

桥模式(Bridge)

组合模式(Composite)

享元模式(Flyweight)

3.行为型模式

在对象的结构和对象的创建问题都解决了之后,就剩下对象的行为问题了,如果对象的行为设计的好,那么对象的行为就会更清晰,它们之间的协作效率就会提高,这里有11个具体的行为型模式可供研究,它们分别是:

模板方法模式(Template Method)

观察者模式(Observer)

状态模式(State)

策略模式(Strategy)

职责链模式(Chain of Responsibility)

命令模式(Command)

访问者模式(Visitor)

调停者模式(Mediator)

备忘录模式(Memento)

迭代器模式(Iterator)

解释器模式(Interpreter)

GOF的著作 

目前,被公认在设计模式领域最具影响力的著作是Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides在1994年合作出版的著作:《Design Patterns:Elements of Reusable Object-Oriented Software》(中译本《设计模式:可复用的面向对象软件的基本原理》 或《设计模式》),该书被广大喜爱者昵称为GOF(Gang of Four)之书,被认为是学习设计模式的必读著作,GOF之书已经被公认为是设计模式领域的奠基之作。

面向对象的几个基本原则

1.面向抽象原则

设计一个类时,不让该类面向具体的类,而是面向抽象类或接口 。

举个例子:定义底面为三角形的柱体

2.开-闭原则 

设计应当对扩展开放,对修改关闭。

如果您的设计遵守了“开-闭原则”,那么这个设计一定是易维护的,因为在设计中增加新的模块时,不必去修改设计中的核心模块。 

3.高内聚-低耦合原则 

如果类中的方法是一组相关的行为,则称该类是高内聚的,反之称为低内聚的。

所谓低耦合就是尽量不要让一个类含有太多的其它类的实例的引用,以避免修改系统的其中一部分会影响到其它部分。 

学习设计模式不仅可以使我们使用好这些成功的模式,更重要的是可以使我们更加深刻地理解面向对象的设计思想,非常有利于我们更好地使用面向对象语言解决设计中的问题。

合理使用模式

1.正确使用; 2.避免教条;  3.模式挖掘

目录
相关文章
|
10天前
|
开发框架 安全 Java
|
1月前
|
设计模式 开发框架 Java
设计模式简介【Java设计模式】
设计模式简介【Java设计模式】
22 0
|
1月前
|
Java
Java-单例模式简介
Java-单例模式 在Java类的设计中,有时希望一个类在任何时候只能有一个实例,这时可以将该类设计为单例模式,要将一个类设计为单例模式,类的构造方法的访问修饰符应声明为private,然后在类中定义一个static方法,在该方法中创建类的对象。
|
1月前
|
设计模式 Java 调度
JAVA线程入门简介
JAVA线程入门简介
151 0
|
2月前
|
JavaScript 前端开发 Java
|
2月前
|
自然语言处理 Java 编译器
Java及JVM简介
Java及JVM简介
|
2月前
|
Java API
Java 反射 API 简介
通常来说,使用反射 API 的第一步便是获取 Class 对象。在 Java 中常见的有这么三种。
34 0
|
2月前
|
XML Java 编译器
[Android JNI] --- Java和Android简介
[Android JNI] --- Java和Android简介
45 1
|
2月前
|
设计模式 Java 数据库
Java设计模式:简介与常见模式
Java设计模式:简介与常见模式
|
3月前
|
算法 Java uml
Java Collections Framework(List相关接口和类简介)
Java Collections Framework(List相关接口和类简介)
27 0
相关产品
云迁移中心
推荐文章
更多