- 博客(14)
- 资源 (4)
- 收藏
- 关注
原创 责任链模式(Chain of Responsibility Pattern)
在彼此不了解的情况下,让多于一个对象处理请求,传递请求给责任链直到它被最终被处理完成,称这种模式为责任链模式。责任链模式是属于行为设计模式的类别之一,经典的UML类图如下所示: 使用场景和优势: 一个请求需要被不少于一个对象处理。 不清楚到底哪个对象会处理请求,可能有多于一个对象制动化地处理它。减少耦合度。 弹性地操作请求。 Java Servlet
2013-05-22 23:14:54 1223
原创 代理模式(Proxy Pattern)
使用简单的对象来代替一个复杂的对象或者为另一个对象提供一个占位符来控制对它的访问。经典UML类如下: 使用场合和优势: 实时或是在内存中创建一个对象代价太高的情况下。 延迟创建直到你需要实际的对象。 加载大的图像。 在网络的高峰时间段加载远程对象。 对于一个复杂的系统,必须使用访问权限时,需要使用代理模式。 从JDK 1.3 开始,java 就对实现代理设
2013-05-16 09:42:25 1549
原创 享元模式(Flyweight Pattern)
高效飞快地生成类的实例以提高性能称为享元模式。它是结构设计模式之一,常常被使用在独特的字符或是屏幕上的图标等。 使用场合和优势: 需要实例化大量小型且可以很好颗粒化的类。 需要图标来展示对象。 一个对象外部的状态能够通过类来共享。 享元模式减少了对象的创建,降低了内存的花费和提升了性能。 相关的模式: 组合模式支持迭代的结构而一个享元仅仅被应用到一个对
2013-05-15 23:37:09 1557 1
原创 装饰模式(Decorator Pattern)
动态或者静态地为一个对象附加一个职责或者功能,称为装饰模式。它是属于结构设计模式之一,比较常用。 使用场合和优势: 为子类提供了一个可选项。 在不影响其它对象的前提下,给一个对象添加一个新方法。 很容易动态地添加和删除某个职责。 比静态继承更具有灵活性。 对于对象来说是透明的。 下列UML类图展示了装饰模式的经典实现模型。 我们将
2013-05-15 16:49:47 1249
原创 组合模式(Composite Pattern)
像一个树形结构一样使用基本的对象和自己本身构建一个复杂的对象,称为组合模式。 这种模式很容易学习以及应用到某个系统中。组合模式属于结构设计模式之一,比较常用。经典的UML图如下: 一个简单的实例程序来说明组合模式是如何实现的。定义一个Employee类,充当组合模式中的表演者,CompositePatternDemo作为测试类。public class Empl
2013-05-15 15:29:12 1343
原创 桥接模式(Bridge Pattern)
从类的实现中分离出抽象或者接口类,以便于这两个类能够互不相干,这种模式称作桥接模式。这种类型模式属于结构设计模式之一, 它通过提供了一个桥结构来分离具体的实现类和抽象类。 适用场合和优势: 想永久地分离抽象和实现类。 在多个对象中分享一个具体的实现类。 想去提高可扩展性。 从客户端哪里隐藏具体的实现。 具体分析一个简单的实例,看看它是如何实现桥接模式。
2013-05-15 13:06:55 1456
原创 适配器模式(Adapter Pattern)
转换一个存在的接口到一个新的接口,以完成不相关的类的兼容性和重用性,这种模式叫做适配器模式。这个模式也被称为封装(wrapper)模式,适配器模式是属于结构设计模式之一。 适用场合和优势: 尝试去匹配一个接口(WindowAdapter等) 使不相关的类工作在一起 多兼容性融合 提高类的透明性 制作课插入的套件(pluggable kit) 委托对象 更高级类的重用
2013-05-15 10:55:17 1521
原创 构造模式(Builder Pattern)
从简单的对象一步一步构造一个复杂的对象,这就叫做构建模式。它是属于创建设计模式之一,也挺常用的。 适用场合和好处: 仅仅通过指定它的类型和内容来生成一个复杂的对象,而这个构造的对象隐藏在它的构建细节。 想分离构建一个复杂对象的过程。 为析构和呈现而隔离代码 给予你更好的控制析构(construction)过程。 对于组合(Composite), 它经常用
2013-05-13 23:45:28 2300
原创 抽象工厂模式(Abstract Factory Pattern)
顾名思义,他是属于创建设计模式之一,作为工厂模式上的抽象层。抽象设计模式是比工厂模式更抽象一级的模式。 在工厂模式的例子基础之上,添加地域功能,以实现全球范围的汽车类型. UML 类图如下: 完整代码如下: public enum Location { DEFAULT, USA, ASIA} publi
2013-05-13 14:41:04 1413
原创 工厂设计模式(Factory Pattern)
提供了比工厂模式更高一级的接口级,用于返回若个工厂之一。这个模式是属于创建模式之一。有几点值得注意: 对象的创建充分重用重要的代码。 对象的创建需要访问某个信息或者资源时,这对象不应该包含在组合类中。 一般对象生命周期管理必须集中化,确保应用程序中行为的一致性。 分析一个例子,如下: 定义一个枚举类型的CarType类,列出车的类型。public en
2013-05-13 11:30:08 1367
原创 原型模式(prototype pattern)
通过克隆对象来创建一个新的对象叫做原型模式(prototype pattern)。原型模式属于创建设计模式的范畴,与它相对的单例模式(Singleton Pattern)相对应,这两个设计模式都很简单,也很常用。 使用场景: 1. 当有许多子类,并且仅仅是对象的类型不同而已。 2. 引用程序中,需要创建大量的类实例且这些实例的状态等差异很小。 3. 动态的绑定
2013-05-08 23:01:31 1526
原创 Yahoo's Recruitment
System Engineer / Backend EngineerPreferred Qualifications:* Solid object-oriented programming experience* Strong analytical/problem-solving skills* Proficiency in programming
2013-05-08 21:21:35 1298
原创 单例模式(singleton pattern)
单例模式就是一个类或者值能够被应用程序全局访问,并且始终是初始化创建的那个实例。单例模式是属于创建模式的范畴,它比较简单,但是,需要注意几个细节。 class DreamFactory{ //lazy instantiation private static DreamFactory dream = null; protected static D
2013-05-08 14:20:16 1320
原创 Python禅
Tim Peters 写了著名的Python 禅,即Python哲学的总结性手册。想必,Python爱好者都知道吧!不知道的话,请看下面Time Peters 的原版“ Zen of Python”(不想破坏原意的美感,所以没有翻译,请谅解。).>>> import thisThe Zen of Python, by Tim PetersBeautiful is better tha
2013-05-01 09:23:39 1477
Machine Learning With Go
2017-10-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人