设计模式-介绍篇

设计模式是解决某类问题行之有效的方法.设计模式指的是解决问题的思想,并不是具体的代码.

开发中会遇到各种各样的问题,但有些问题在本质上相同的,有些人已经总结出了解决这些问题的方法,学习设计模式就是利用其他开发人员的经验和智慧来解决某类相同的问题.

再一次强调,设计模式强调的是思想.学习设计模式最好的方式是:先理解,然后在项目中合理的使用这些模式.以往是代码复用,现在是经验复用.

此篇只是一个的介绍,随着学习的深入,会对本篇进行不断的更新.

ps:设计模式的学习使用的书籍head
first设计模式.大三的时候就准备学习设计模式了,买了一本国人写的书,看的云里雾里,后面就不了了之了,并不是说国人写的书不好,只是个人觉得,和老外写的书相比,确实有不小的差距.

时间: 2024-08-27 18:31:30

设计模式-介绍篇的相关文章

设计模式总结篇系列:策略模式(Strategy)

前面的博文中分别介绍了Java设计模式中的创建型模式和结构型模式.从本文开始,将分别介绍设计模式中的第三大类,行为型模式.首先我们了解下分为此三大类的依据. 创建型模式:主要侧重于对象的创建过程: 结构型模式:主要侧重于处理类或对象的组合: 行为型模式:主要侧重于类或对象之间的交互以及职责分配. 首先了解下策略模式的概念:定义了多个算法,并将它们封装起来(一般的是每个算法封装成一个单独的类),让算法独立于客户端而可以单独变化. 具体可以看一下下面的例子(以计算加.减.乘为例): 1. 对加.减.

23种设计模式介绍(一)---- 创建型模式

由于设计模式篇幅比较大,如果在一篇文章讲完所有的设计模式的话不利于阅读.于是我把它分为三篇文章 23种设计模式介绍(一)---- 创建型模式 23种设计模式介绍(二)---- 结构型模式 23种设计模式介绍(三)---- 行为型模式 由于设计模式都是比较抽象的概念,所以大家一定要确保看懂类图,而后再自己写代码加强记忆. 简介 设计模式分为三大类: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接

23种设计模式介绍(三)---- 行为型模式

由于设计模式篇幅比较大,如果在一篇文章讲完所有的设计模式的话不利于阅读.于是我把它分为三篇文章 23种设计模式介绍(一)---- 创建型模式 23种设计模式介绍(二)---- 结构型模式 23种设计模式介绍(三)---- 行为型模式 设计模式都是比较抽象的概念,所以大家一定要确保看懂类图,而后再自己写代码加强记忆. 概述 行为型模式一共有11种: 模板方法模式(Template Method) 策略模式(Strategy) 命令模式(Command) 中介者模式(Mediator) 观察者模式(

23种设计模式介绍(二)---- 结构型模式

由于设计模式篇幅比较大,如果在一篇文章讲完所有的设计模式的话不利于阅读.于是我把它分为三篇文章 23种设计模式介绍(一)---- 创建型模式 23种设计模式介绍(二)---- 结构型模式 23种设计模式介绍(三)---- 行为型模式 设计模式都是比较抽象的概念,所以大家一定要确保看懂类图而后再自己写代码加强记忆. 概述 结构型模式共七种: 适配器模式(Adapter) 外观模式(Facade) 桥接模式(Bridge) 装饰器模式(Decorator) 代理模式(Proxy) 享元模式(Flyw

设计模式介绍

设计模式 设计原则 开闭原则(OCP):对扩展开放,对修改关闭 里氏代换原则(LSP):子类型必须能够替换它们的基类型 依赖倒置原则(DIP):要依赖于抽象,不依赖于具体 接口隔离原则(ISP):每个接口是一种角色,不多不少,不干不该干的事,该干的事都要干 迪米特法则(LoD)[又叫最少知识原则(LKP)]:高内聚低耦合(一个对象对其它对象有尽可能少的了解) 合成/聚合复用原则(CARP):尽量使用合成/聚合,尽量不要使用继承 设计模式的分类 按照目的分: 创建型:(与类和对象的创建有关) 工厂

设计模式总结篇系列:外观模式(Facade)

张三自从毕业后开始做软件开发,做着做着发现不爽了,钱赚不了太多,头发也白了.于是拿着一点小资本,想着做点小生意.瞅着眼前的餐饮行业还不错,于是打算开一家餐馆.开参观可不是一件容易的事,仅仅行政类的审批流程就不少.至少包括办理卫生许可证,办理税务登记,办理工商登记等. 我们先来看一下行政审批接口: 1 interface Executive{ 2 3 public void approve(); 4 5 } 卫生局类的定义: 1 class HealthOffice implements Exec

设计模式总结篇系列:代理模式(Proxy)

时代在发展,我们发现,现在不少明星都开始进行微访谈之类的,有越来越多的参与捐赠等.新的一天开始了,首先看下新的一天的日程安排: 1 interface Schedule{ 2 3 public void weiTalk(); 4 5 public void donation(); 6 7 } Schedule接口定义了今天的形成安排,主要包括微访谈和捐款.那么看一下实现此接口的明星类定义: 1 class Star implements Schedule { 2 3 @Override 4 pu

设计模式总结篇系列:组合模式(Composite)

在探讨Java组合模式之前,先要明白几个概念的区别:继承.组合和聚合. 继承是is-a的关系.组合和聚合有点像,有些书上没有作区分,都称之为has-a,有些书上对其进行了较为严格区分,组合是contains-a关系,聚合是has-a关系. 组合方式中被组合的对象生命周期不能超过整体,一般写代码时是直接在整体类的构造方法中创建被组合类的对象.如人和手之间的关系,人都没了,还何来手? 聚合方式中对于对象的生命周期则没有此类限制,一般可以在聚合类的构造函数中通过外部传参以赋值给整体(或通过其他set等

设计模式总结篇系列:桥接模式(Bridge)

在实际类设计过程中,有时会遇到此类情况:由于实际的需要,某个类具有两个或两个以上的维度变化,如果利用继承将每种可能的变化情况都定义成一个类,一是会导致类膨胀的问题,二是以后不太好维护和并且违背类的设计原则.那么面对这种情况,类改如何设计呢?这就是本文所要讲到的桥接模式. 简单的讲,桥接模式是指:将抽象和行为划分开来,从而将各个可能变化的维度分离开来,各自独立成一个类,但是能够动态的组合. 貌似有点抽象,下面通过一个简单的例子来理解桥接模式. 我们可以通过Email发送信息,也可以手段短信发送信息