【设计模式】学习进度

1、策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。

eg 鸭子

2、观察者模式:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。

eg 气象台

3、装饰对象:动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。

  装饰者和被装饰者具有共同的超类。

eg starbuzz

4、工厂模式

所有工厂模式都用来封装对象的创建。

(1)简单工厂:只是把具体制造不同种类pizza的过程放到工厂里。

(2)工厂方法模式(Factory Method):定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。

通过让子类决定该创建的对象是什么,来达到将对象创建的过程封装的目的。

eg 不同地方做不同地方特色口味的pizza

  创建者Creator:通常包含依赖子抽象产品的代码,而抽象产品由子类制造,创建者不需要真的知道在制造哪种具体产品。

  产品类Product

  产品类和创建者类平行。

(3)抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。

  每一个具体工厂都能生产一个产品家族。客户创建产品时,只需要使用某一个具体工厂,而不需实例化任何产品对象。

eg 不同地区有不同的工厂来制造不同的调料(调料包括很多不同种类,也就是产品家族)

5、单件模式:确保一个类只有一个实例,并提供一个全局访问点。

时间: 2024-12-14 09:48:16

【设计模式】学习进度的相关文章

java/android 设计模式学习笔记(16)---命令模式

这篇博客我们来介绍一下命令模式(Command Pattern),它是行为型设计模式之一.命令模式相对于其他的设计模式更为灵活多变,我们接触比较多的命令模式个例无非就是程序菜单命令,如在操作系统中,我们点击关机命令,系统就会执行一系列的操作,如先是暂停处理事件,保存系统的一些配置,然后结束程序进程,最后调用内核命令关闭计算机等,对于这一系列的命令,用户不用去管,用户只需点击系统的关机按钮即可完成如上一系列的命令.而我们的命令模式其实也与之相同,将一系列的方法调用封装,用户只需调用一个方法执行,那

linux 命令 及学习进度综合整理

linux  命令  及学习进度综合整理 pwd 查看当前所在位置 cd  跳转到什么什么目录 ls  显示所有文件和目录 ls -l  显示目录详细信息 cd ..  返回上一级 vi  lnany.txt  创建一个文件 vi  .lnany.txt    创建一个隐藏文件 vim 是 vi 的升级版 功能更多 出现 -bash: vim: command not found 的解决办法 i. 那么如何安裝 vim 呢?输入rpm -qa|grep vim 命令, 如果 vim 已经正确安裝

设计模式学习总结

本文是对各处设计模式示例的总结概括和简化,主要参考 http://blog.csdn.net/zhangerqing/article/details/8194653 直接看本文估计比较枯燥无聊,因为没图~~??,建议对设计模式有兴趣的先看看上面的博文,或者基础比较好可直接移到最底下看下我的各模式一句话概括总结,有什么意见建议欢迎提出~~~~~~~~~~ 总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式.结构型模式,共七种:适配器模式.装饰

java/android 设计模式学习笔记(14)---外观模式

这篇博客来介绍外观模式(Facade Pattern),外观模式也称为门面模式,它在开发过程中运用频率非常高,尤其是第三方 SDK 基本很大概率都会使用外观模式.通过一个外观类使得整个子系统只有一个统一的高层的接口,这样能够降低用户的使用成本,也对用户屏蔽了很多实现细节.当然,在我们的开发过程中,外观模式也是我们封装 API 的常用手段,例如网络模块.ImageLoader 模块等.其实我们在开发过程中可能已经使用过很多次外观模式,只是没有从理论层面去了解它. 转载请注明出处:http://bl

本周学习进度

本周学习进度如下: 所花时间(包括上课) 10Hours 代码量(行) 100 博客量(篇) 9 了解到的知识点 在应用典型分析法预测时,应注意的问题: 1.选择典型时,应先明确典型的标准,即明确是选择哪种类型的典型. 2.选择典型的多少,应视所要解决问题的难易程度和涉及范围的大小而定. 3.在典型分析中要实事求是,既要保证调查材料的真实性又要保证分析的正确性.

java/android 设计模式学习笔记(10)---建造者模式

这篇博客我们来介绍一下建造者模式(Builder Pattern),建造者模式又被称为生成器模式,是创造性模式之一,与工厂方法模式和抽象工厂模式不同,后两者的目的是为了实现多态性,而 Builder 模式的目的则是为了将对象的构建与展示分离.Builder 模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细地控制对象的构造流程.一个复杂的对象有大量的组成部分,比如汽车它有车轮.方向盘.发动机.以及各种各样的小零件,要将这些部件装配成一辆汽车,这个装配过

java/android 设计模式学习笔记(一)---单例模式

前段时间公司一些同事在讨论单例模式(我是最渣的一个,都插不上嘴 T__T ),这个模式使用的频率很高,也可能是很多人最熟悉的设计模式,当然单例模式也算是最简单的设计模式之一吧,简单归简单,但是在实际使用的时候也会有一些坑. PS:对技术感兴趣的同鞋加群544645972一起交流 设计模式总目录 java/android 设计模式学习笔记目录 特点 确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例. 单例模式的使用很广泛,比如:线程池(threadpool).缓存(cache).对

本周学习进度8

发表日期 2016-06-12 本周学习进度如下: 所花时间(包括上课) 9Hours 代码量(行) 100 博客量(篇) 3 了解到的知识点 团队绩效的定义.策略.遵循原则.评估手段.测评流程.测评方法.影响因素.指标设计.

本周学习进度5

发表日期 2016-05-22 本周学习进度如下: 所花时间(包括上课) 12Hours 代码量(行) 150 博客量(篇) 2 了解到的知识点 软件测试的主要内容:验证和确认 主要边界的确定.测试的不同分类如黑盒白盒.静态动态.单元.集成.确认.系统等

本周学习进度6

发表日期 2016-05-29 本周学习进度如下: 所花时间(包括上课) 10Hours 代码量(行) 200 博客量(篇) 3 了解到的知识点 软件设计开发的基本知识:设计思路的开拓,开发过程.开发过程中的问题解决办法