设计模式
Hyutao2019
我心中有猛虎 细嗅蔷薇
展开
-
设计模式----装饰模式
1、装饰模式概要 装饰者模式(Decorator):动态地为一个对象添加一些额外的职责,若要扩展一个对象的功能,装饰者提供了比继承更有弹性的替代方案。 抽象构件类(Component):给出一个抽象的接口,用以规范准备接收附加责任的对象 具体构件类(ConcreteComponent):定义一个具体的准备接受附加责任的类,其必须实现Component接口。 装饰者类(Decorator):持有...原创 2019-03-18 16:19:16 · 96 阅读 · 0 评论 -
设计模式之----工厂模式
1、工厂模式概要 工厂模式可分为3中工厂模式 简单(静态)工厂模式 :非设计模式,作用为将创建的过程从对象的使用者中分离开来 工厂模式 : 将类的实例化推迟到子类 抽象工厂模式 :为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。 工厂模式的作用就是为了解耦,使我们在扩充功能的时候尽可能少的修改代码 2、简单工程模式 **定义:**简单工程模式是一种非设计模式...原创 2019-03-25 22:21:20 · 433 阅读 · 0 评论 -
设计模式之----模板方法模式
1、模板方法模式概要 **定义:**在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模版方法使得子类可以在不改变算法结构的情况下,重新定义算法中某些步骤。 模板模式和策略模式很相像但却不相同 模板模式解决的是算法模式内部的问题,而策略模式解决的是扩展问题,本质上是不一样的 另外我们应该遵守好莱坞原则:让我们来找你,而不是你找我们 2、模板方法模式举例 首先我们想象一下冲咖啡和泡茶的过程 ...原创 2019-03-29 21:17:25 · 98 阅读 · 0 评论 -
设计模式之----单例模式
1、单例模式概要 定义: 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例 单例模式确保系统在运行过程中只会存在一个实例,当遇到需要频繁创建对象或者创建对象会花费较多资源的时候,使用单例模式就尤为重要 单例模式可以解决全局变量的一些缺点,比如可以延迟加载,保证只在使用这个类的时候才创建对象,而不是像全局变量一样在一开始就创建完成 tips: 单例模式的构造器必须是私有的 2、...原创 2019-03-26 21:04:28 · 100 阅读 · 0 评论 -
设计模式之----迭代器模式
1、迭代器模式概要 定义: 提供一种方法顺序的访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。 比如在同时整合多个对象的代码时,每个对象所用的数据结构不同,如果想要让他们统一展现出来,就可以使用迭代器模式 迭代器是从前向后投遍历的,迭代器不用关心是使用什么样的数据结构 2、迭代器模式举例 对象村的早饭店和午饭店铺合并了,现在需要合并他们的菜单,但是早餐店的菜单是使用ArrayList,午餐...原创 2019-03-30 22:53:53 · 104 阅读 · 0 评论 -
设计模式之----组合模式
设计模式之----组合模式 定义: 允许你将对象组合成树形结构来表现“整体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及组合对象。 举一个很简单的例子,我们有两个类一个是菜单类Menu,另一个是菜单项类MenuItem(几个菜单项类组成一个菜单) 比如说我们有个几个菜单项类,如:烤鸭,红烧肉,西红柿炒鸡蛋 这几个构成了午餐菜单,我们这里不但有午餐还有晚餐和早餐 我们用一个ArrayLi...原创 2019-03-31 20:30:08 · 146 阅读 · 0 评论 -
设计模式之----命令模式
1、命令模式概要 定义: 对命令进行封装,将发出命令的责任和执行命令的责任分割开 你可以想象一个场景,你是一名在餐馆吃饭的顾客,你在菜单上写上想吃的菜,呼叫服务员帮你送给厨师 当然你完全可以自己跑去和厨师说,我要吃什么菜,但是你所坐的地方和厨房还是有一定距离的,你的每一次加菜都必须自己到厨房去,在这里你和厨师的关系是高度耦合的,因为是你和厨师说的话,厨师必须要记得你。厨师又要做菜又要把人和菜对应上...原创 2019-03-27 22:02:17 · 169 阅读 · 0 评论 -
设计模式之----适配器模式
1、适配器模式概要 定义:将一个类的接口转换成客户希望的另一个接口。适配器模式让那些接口不兼容的类可以一起工作 适配器模式有两种,一是对象适配器,另一种是类适配器,但是类适配器需要多重继承,我们这里就不加以讨论 对象适配器,类通过实现目标对象的接口来包装对象,使得对象能转换成客户想要的接口 就比如充电器,分为充电线和充电器的头,就是把usb转换墙上的插头,充电器的头就是一个适配器 因为我们的usb...原创 2019-03-28 22:25:57 · 177 阅读 · 0 评论