设计模式定义:设计模式是从许多优秀的软件系统中总结出成功的可复用的设计方案
面向对象的几个基本原则:
1.面向抽象原则 -使用抽象类和接口 eg:计算柱体的面积
2.开-闭原则 -开是可扩展 闭-是不修改的部分 同样上面的例子
3.多用组合少用继承 - 子类从父类继承的方法在编译时就确定下来了,所以无法在运行期间改变从父类继承的方法的行为。
子类和父类的关系是强耦合关系,也就是说当父类的方法的行为更改时,必然导致子类发生变化。
4.高内聚 -低耦合原则
23种设计模式的理解:
1.工厂方法模式:用户需要一个类的子类的实例,但不希望与该类的子类形成耦合;用户需要一个类的子类的实例,但用户不 知道该类有那些子类可用。
结构描述:抽象产品,具体产品,抽象构造者,具体构造者
eg:药店生成药品
2.抽象工厂模式:系统需要为用户提供多个对象,但不希望用户直接使用new 运算符实例化这些对象,即希望用户和创建对象 的类脱耦。系统需要为用户提供多个相关的对象,以便用户联合例用他们,但又不希望用户来决定这些对象是如何关联的。
系统需要为用户提供一系列对象,但只需要用户知道这些对象有那些方法可用,不需要用户知道这些对象的创建的过程。
eg: 衣服配套
3.装饰模式:程序希望动态地增强类的某个对象的功能,而又不影响到该类的其它对象。采用继承来增强对象功能不利于系 统的扩展和维护。
结构描述:抽象组件,具体组件,装饰,具体装饰
eg:鸟飞
4.观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生变化时,所有依赖它的对象都得到通知并被自 动更新。
结构描述:主题 ,具体主题 ,观察者,具体观察者
eg:求职
5.策略模式:定义一系列算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而 变化。
结构描述:策略,具体策略,上下文
eg:士兵排队算法
6.适配器模式:使得原本由于接口不兼容而不能一起工作的那些类可以一起工作.
结构描述:目标,被适配者,适配器
eg:两相,三相插头的适配
7.代理模式:为其它对象提供一种代理以控制对这个对象的访问.
代理模式可以屏蔽用户真正请求的对象,使用户程序和真正的对象这间解耦
使用代理来担当那些创建耗时的对象的替身
结构描述:抽象主题 ,实际主题,代理
eg:代理验证3角形
8.外观模式:
为系统中的一组接口提供一个一致的界面。该模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
结构描述:子系统,外观
eg:邮寄包裹流程
分享到:
相关推荐
23设计模式源代码,代码包含了23设计模式,以及流程图。
java23设计模式 java23设计模式
23种设计模式23种设计模式23种设计模式23种设计模式
23种设计模式整理pdf
GOF 23设计模式的Visio版UML图
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统...
此资料是对尚学堂高琪老师所讲解的GOF23设计模式的专门整理,每个设计模式的资料+高琪老师编写的入门code都是分类存储,并且包括UML设计图遇到需要的设计模式可以在相关的文件夹查找。
23种设计模式UML类图,以及相应的源码,文档,自己找过的,查阅过的网上的资料
自己整理的23设计模式java源码,喜欢的可以下载查看。
23种设计模式(C++)
GOF23 设计模式与MM 从追MM谈Java的23种设计模式
23设计模式c#源代码
里面包含了23中设计模式源代码,其中包括工厂模式(Factory)、单例(Singleton)、观察者模式(Observer)、适配器模式(Adapter)、Template模式、Decorate模式、proxy模式等 这些代码对于初学者看起来稍微复杂一些,我...
C# 23种设计模式,学习设计模式不错的资料。
23设计模式java实现 非常经典,如果你下了那是你的幸运,否则那是你的损失
Java的23种设计模式百度云下载链接.rar Java的23种设计模式百度云下载链接.rar Java的23种设计模式百度云下载链接.rar
C# 23设计模式 (带实例源代码),这是一本很实用的书,每章带UML
GOF23设计模式的Visio版UML图