上一页 1 ··· 191 192 193 194 195 196 197 198 199 ··· 246 下一页
摘要: 本文继续介绍23种设计模式系列之策略模式。 背景 在软件开发中常常遇到这种情况,实现某一个功能有多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能。如查找、排序等,一种常用的方法是硬编码(Hard Coding)在一个类中,如需要提供多种查找算法,可以将这些算法写到一 阅读全文
posted @ 2017-04-28 14:30 疯子110 阅读(249) 评论(0) 推荐(0)
摘要: 本文继续介绍23种设计模式系列之建造者模式。 定义: 建造者模式:将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 实用范围 1、当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。 2、当构造过程必须允许被构造的对象有不同表示时。 角色 在这样的设计模式 阅读全文
posted @ 2017-04-28 14:20 疯子110 阅读(191) 评论(0) 推荐(0)
摘要: 本文继续介绍23种设计模式系列之抽象工厂模式。 前面已经介绍过简单工厂模式和工厂方法模式,这里继续介绍第三种工厂模式-抽象工厂模式,还是以汽车的制造为例。 例子背景: 随着客户的要求越来越高,宝马车需要不同配置的空调和发动机等配件。于是这个工厂开始生产空调和发动机,用来组装汽车。这时候工厂有两个系列 阅读全文
posted @ 2017-04-28 14:08 疯子110 阅读(283) 评论(0) 推荐(0)
摘要: 设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模 阅读全文
posted @ 2017-04-28 11:48 疯子110 阅读(224) 评论(0) 推荐(0)
摘要: 定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。 类型:创建类模式 类图: 原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype。Prototype类需要具备以下两个条件: 实现Cloneable接口。在java语言有一个Cloneable接口,它的作用只有 阅读全文
posted @ 2017-04-28 11:43 疯子110 阅读(218) 评论(0) 推荐(0)
摘要: 在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之 阅读全文
posted @ 2017-04-28 11:37 疯子110 阅读(277) 评论(0) 推荐(0)
摘要: 【代理模式应用场景举例】 比如在玩“极品飞车”这款游戏,如果游戏者手中的金钱达到了一定的数量就可以到车店买一部性能更高的赛车,那么这个卖车的“车店”就是一个典型的“汽车厂家”的“代理”,他为汽车厂家“提供卖车的服务”给有需求的人士。从面向对象的方面考虑,“销售汽车的代理”也是一个对象,那么这个对象也 阅读全文
posted @ 2017-04-28 11:23 疯子110 阅读(174) 评论(0) 推荐(0)
摘要: 解释一下概念:也就是说在一个系统中如果有多个相同的对象,那么只共享一份就可以了,不必每个都去实例化一个对象。比如说一个文本系统,每个字母定一个对象,那么大小写字母一共就是52个,那么就要定义52个对象。如果有一个1M的文本,那么字母是何其的多,如果每个字母都定义一个对象那么内存早就爆了。那么如果要是 阅读全文
posted @ 2017-04-28 11:14 疯子110 阅读(373) 评论(0) 推荐(0)
摘要: 医院的例子 现代的软件系统都是比较复杂的,设计师处理复杂系统的一个常见方法便是将其“分而治之”,把一个系统划分为几个较小的子系统。如果把医院作为一个子系统,按照部门职能,这个系统可以划分为挂号、门诊、划价、化验、收费、取药等。看病的病人要与这些部门打交道,就如同一个子系统的客户端与一个子系统的各个类 阅读全文
posted @ 2017-04-28 11:02 疯子110 阅读(251) 评论(0) 推荐(0)
摘要: 这个模式花费了挺长时间,开始有点难理解,其实就是 定义:动态给一个对象添加一些额外的职责,就象在墙上刷油漆.使用Decorator模式相比用生成子类方式达到功能的扩充显得更为灵活。设计初衷:通常可以使用继承来实现功能的拓展,如果这些需要拓展的功能的种类很繁多,那么势必生成很多子类,增加系统的复杂性, 阅读全文
posted @ 2017-04-28 10:48 疯子110 阅读(147) 评论(0) 推荐(0)
上一页 1 ··· 191 192 193 194 195 196 197 198 199 ··· 246 下一页