当前位置: 首页 > news >正文

【HeadFirst 设计模式】你看过《HeadFirst Design Pattern》了吗?(菜鸟晋升必经之路)

废话不多说,干货分享。

1. 观察者模式

2. 装饰者模式

3. 工厂模式

4.单列模式(Singleton Pattern)

5.命令模式

6.适配器模式和外观模式

7. 模板模式

【好莱坞原则】别调用我们,我们会调用你(我们:高层组件,你:底层组件)

8. 迭代器模式和组合模式

9.状态模式

10.代理模式

1. 观察者模式

Demo:

2. 装饰者模式

3. 工厂模式

【抽象工厂模式和工厂方法模式区别】

   抽象工厂通过对象的组合,提供一个用来创建一个产品家族的抽象类型,负责创建对象。当需要创建产品和想让制造的相关产品集合起来,可以使用它。

   工厂方法模式通过继承,扩展一个子类负责创建对象,将客户从具体类中解耦。

4.单列模式(Singleton Pattern)

5.命令模式

6.适配器模式和外观模式

 

 

7. 模板模式

       钩子(hook)是一种被声明在抽象类中的方法,但是只有空或者默认的实现。钩子的存在可以让子类有能力对算法的不同点进行挂钩。要不要挂钩由子类决定。其主要用途如下:

【好莱坞原则】别调用我们,我们会调用你(我们:高层组件,你:底层组件)

    

8. 迭代器模式和组合模式

9.状态模式

10.代理模式

已经淘汰了:RMI 提供了客户辅助对象和服务辅助对象,为客户辅助对象创建和服务对象相同的方法。RMI的好处在于你不必亲自写任何网络或I/O代码。客户程序调用远程方法(即真正的服务所在)就和在运行在客户自己的本地JVM上对对象进行正常方法调用一样。RMI将客户辅助对象称为stub(桩),服务辅助对象称为skeleton(骨架)。


保护代理:提供了一种根据访问权限决定客户可否访问对象的代理。

       采用设计模式时必须考虑到这么做是否有意义。绝对不能为了使用模式而使用模式。用好的OO设计原则就可以解决问题,这样其实就够了。

       复合模式是指一群模式被结合起来使用,以解决一般性问题。MVC 复合模式是由数个模式结合起来而形成的新模式,一再地被用于解决许多问设计问题。

        Model-View-Controller中Controller为View实现行为,将来自视图的动作转成Model上的动作,Model实现应用逻辑并决定如何响应动作。控制器也好做一些决定,决定调用哪一个模型的哪个方法,但是这不能算是“应用逻辑”,应用逻辑指的是管理与操纵你的模型中的数据的代码。在某种程度上,控制器可以被视为中介者,封装对象之间的交互,不让两个对象之间互相显式引用,以达到松耦合的目的。

模式是在某个情景之下,针对某个问题的解决方案。

当你在设计的时候,如果确定你的设计中可以利用某个模型解决某个问题,那么就使用这个模式,如果有更简单的解决方案,那么在决定使用模式之前应该先考虑这个方案。

过度使用设计模式可能导致代码被过度工程化, 应该总是用最简单的解决方案完成工作,并在真正需要模式的地方才使用它。

http://www.xdnf.cn/news/828847.html

相关文章:

  • C语言【指针】函数指针和指针函数用法和区别
  • AGPS(辅助全球卫星定位系统)
  • 这些机房规划技巧,老网工都不舍得公开
  • android使用sharesdk第三方分享
  • 【C语言】C语言函数详解:从基础到高级,掌握函数的使用技巧和常见问题解析
  • sin60度 用计算机,cos60度等于多少啊
  • Java概念
  • Android最全UI库合集
  • C语言爱心代码大全集—会Ctrl+C就可以表白了
  • TCP通信过程详解以及tcp长连接和短连接
  • IronPython:交互式解释器与常用函数
  • VMware安装虚拟机教程(小白学习记录)
  • 入坑刷机?手机各大模式了解一下
  • AndroidStudio findbugs 插件检查和过滤
  • 配置本地安全策略
  • 计算机大端与小端的详细解析,含判断机器大小端代码
  • SAP-MM常用增强之MIGO增强
  • startActivityForResult被标记为弃用后,如何优雅的启动Activity?
  • 软件加密系统Themida应用程序保护指南(八):额外的选择
  • assertion failed的解决办法
  • 浅析C/C++ library
  • 三层架构简介
  • Oracle AWR与ASH性能报告深入解析
  • 中文乱码集锦
  • SpringBatch简介
  • 【Nav2中文网】十一、迁移指南 (三) Foxy转Galactic
  • 【Linux C | 文件I/O】文件的读写 | read、write、lseek 函数
  • 软件测试人员必备的60个测试工具,果断收藏了!
  • cFosSpeed(网络加速器软件)官方中文版V11.10.2483 | 网络优化大师 | 绝佳的电脑网络延迟解决方法
  • PubYun动态域名