fibonacci数列是个很常见的面试题,相信大家都见识过,反正我碰见过两次。递归是最容易想到的办法。但是写一个递归,往往面试官并不满意,会追问。这个递归存在什么问题埃有没有其它办法碍…。办法总比问题多,跳跳大路通帝都。下面就总结一下。把程序写到面试官的心缝里!递归..
分类:
编程语言 时间:
2016-01-20 15:51:47
阅读次数:
187
设计模式系列都是学习HeadFirst设计模式得出的学习心得,中间的例子也会采用书中的例子。这里有必要解释一下,在下面星巴克咖啡的例子中,有几种基本的咖啡,还有牛奶、豆浆等等可以向咖啡中添加,这里说明防止下面不懂。 今天我们来了解一下装饰者模式。 回想一下java的io包,各种stream排...
分类:
其他好文 时间:
2016-01-19 22:14:05
阅读次数:
217
一:装饰模式的定义 --->动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。 --->如果大家还记得代理模式,那么很容易看懂这个类图,装饰类的作用也就是一个特殊的代理类. --->在装饰模式中,必然有一个最基本、最核心、最原始的接口或抽象类充当Component抽象...
分类:
其他好文 时间:
2016-01-19 20:58:39
阅读次数:
200
Python Singleton首先声明一个singleton装饰器#!/usr/bin/env python
# -*- coding: utf-8 -*-
def singleton(cls, *args, **kw):
instances = {} def _singleton():
if cls not in instances:
ins...
分类:
编程语言 时间:
2016-01-19 10:45:28
阅读次数:
139
第二十一章、装饰模式
装饰模式也称为包装模式,是结构型设计模式之一。装饰模式是一种用于替代继承技术的一种方案。
1.定义动态的给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。...
分类:
移动开发 时间:
2016-01-16 12:08:10
阅读次数:
279
Java I/O标签: Java基础
Java的I/O功能通过java.io包下的类和接口来支持,在java.io包下主要包括输入/输出两种IO流,每种输入/输出流又可分为字节流和字符流两大类.字节流支持以字节(8位)为单位的IO操作,而字符流则以字符(16位-Java中)为单位进行IO操作.
除此之外,Java的IO流还使用装饰者模式,将IO流分成底层节点流和上层处理流,节点流直...
分类:
编程语言 时间:
2016-01-16 09:48:46
阅读次数:
388
一、定义装饰者模式:动态地给一个对象添加一些额外的职责,就增加功能来说,Decorator模式比生成子类更为灵活。Decorator模式的工作原理是:可以创建始于Decorator对象(负责新的功能的对象)终于原对象的一个对象“链”。二、实例:手机屏幕装饰2.1 手机public abstract ...
分类:
其他好文 时间:
2016-01-11 23:51:39
阅读次数:
283
意图:动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比于生成子类更为灵活。该模式以对客户端透明的方式扩展对象的功能。适用环境在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。处理那些可以撤销的职责。当不能采用生成子类的方法进行扩充时。一种情况是,可能有大量...
分类:
编程语言 时间:
2016-01-11 20:23:08
阅读次数:
211
在filter中可以得到代表用户请求和响应的request、response对象,因此在编程中可以使用Decorator(装饰器)模式对request、response对象进行包装,再把包装对象传给目标资源,从而实现一些特殊需求。一、Decorator设计模式1.1、Decorator设计模式介.....
分类:
编程语言 时间:
2016-01-11 20:21:23
阅读次数:
315
装饰模式使用被装饰类的一个子类的实例。把client的调用委派到被装饰类,装饰模式的关键在于这样的扩展是全然透明的。装饰模式在Java种使用也非常广泛,比方我们在又一次定义button、对话框等时候,实际上已经在使用装饰模式了。装饰模式最浅显的样例是相片-相框的样例。一、原理图当中类的职责例如以下:...
分类:
编程语言 时间:
2016-01-10 18:23:28
阅读次数:
202