
设计模式
tianmo2010
这个作者很懒,什么都没留下…
展开
-
Observer观察者模式
Observer观察者模式作用:观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己UML图:Subject类,可翻译为主题或抽象通知者,一般用一个抽象类或者一个借口实现。它把所有对观察者对象的引用保存在一个聚集里,每个主题都可以有任何数量的观察者。抽象主题提供一个借口,可以原创 2015-02-16 15:21:32 · 1045 阅读 · 0 评论 -
Prototype原型模式
1. 字符编码简介1.1. ASCIIASCII (American Standard Code for Information Interchange),是一种单字节的编码。计算机世界里一开始只有英文,而单字节可以表示256个不同的字符,可以表示所有的英文字符和许多的控制 符号。不过ASCII只用到了其中的一半(/x80以下),这也是MBCS得以实现的基础。1.2. MB原创 2011-09-30 18:42:04 · 992 阅读 · 1 评论 -
Mediator中介者模式
内存碎片的产生: 内存分配有静态分配和动态分配两种 静态分配在程序编译链接时分配的大小和使用寿命就已经确定,而应用上要求操作系统可以提供给进程运行时申请和释放任意大小内存的功能,这就是内存的动态分配。 因此动态分配将不可避免会产生内存碎片的问题,那么什么是内存碎片?内存碎片即“碎片的内存”描述一个系统中所有不可用的空闲内存,这些碎片之所以不能原创 2012-02-27 10:35:14 · 934 阅读 · 0 评论 -
Proxy代理模式
Extensions 的编写 理解了这些运行机制以后,本章着手介绍Extensions 的编写,但凡写程序的人都知道hello world,那好,就从hello world开始。1.1Hello World这是摘自《PHP手册》的示例程序: 这段代码实现了一个简单的extension,首先它包含了“php.h”,这是所有extensions都需要包含的头文件,它定义、声明了原创 2011-09-02 17:14:41 · 802 阅读 · 0 评论 -
TemplateMethod模板方法模式
开首语:Python与我看过的《unix高级环境编程》等书籍原理上差不多一样,都需要socket来支撑,同时遵循TCP和UDP传输协议,在理论上和实际之中都需要创建客户端和服务端(C/S模式),利用socket数据流来进行通信。网络编程应有的两点前提: 一、Soc原创 2011-09-03 13:32:30 · 1840 阅读 · 1 评论 -
Decorator装饰模式
我是先装好Python,后来要用到Tkinter才装的1.安装Python2.6.1:dumeifang@dumeifang-desktop:~$ suPassword:root@dumeifang-desktop:/home/dumeifang#wget http://www.python.org/ftp/python/2.6.1/Python-2.6.1.tgz--14:2原创 2012-06-25 11:05:00 · 1365 阅读 · 0 评论 -
Strategy策略模式
如果说强大的标准库奠定了python发展的基石,丰富的第三方库则是python不断发展的保证,随着python的发展一些稳定的第三库被加入到了标准库里面,这里有6000多个第三方库的介绍:点这里或者访问:http://pypi.python.org/pypi?%3Aaction=index。下表中加粗并且标红的都是我平时使用较多的一些第三方库。(P.S.优快云的这个表格功能太难用了,改HTML代原创 2011-03-25 22:52:00 · 1225 阅读 · 0 评论 -
Singleton单例模式
当用SSH Secure Shell连接Linux时,如果几分钟没有任何操作,连接就会断开,必须重新登陆才行,每次都重复相同的操作,很是烦人,本文总结了两种解决的方法。 方法1:更改ssh服务器的配置文件/etc/ssh/sshd_config ClientAliveInterval指定了服务器端向客户端请求消息的时间间隔, 默认是0,不发送。而ClientAliveInterval原创 2011-11-18 20:50:35 · 1533 阅读 · 0 评论 -
浅析23种软件设计模式
1、工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。 2、建造模式:将产品的内部表象和产品的生成过程分割开来,从而使一个建造过程生成具有不同的内部表象的产品对象。建造模式使得产品内部表象可以独立的变化,客户不必知道产品内部组成的细节。建造模式可以强制实行原创 2011-10-14 20:13:08 · 758 阅读 · 0 评论 -
Bridge桥接模式
Python SQLITE数据库是一款非常小巧的嵌入式开源数据库软件,也就是说没有独立的维护进程,所有的维护都来自于程序本身。它使用一个文件存储整个数据库,操作十分方便。它的最大优点是使用方便,功能相比于其它大型数据库来说,确实有些差距。但是性能表现上,SQLITE并不逊色。麻雀虽小,五脏俱全, sqlite 实现了多数 sql-92 的标准,比如说 transaction 、 trigger原创 2011-08-13 19:05:45 · 1329 阅读 · 0 评论 -
Adapter适配器模式
SSh协议: 全称为Secure Shell,即很安全的shell,主要目的是用来取代传统的telnet和r系列命令(rlogin,rsh,rexec等)远程登录和远程执行命令的工具,实现远程登录和远程执行命令加密,防止由于网络监听而出现的密码泄露,从而对系统构成威胁。(telnet协议采用明文传送密码,数据传送过程中也不加密) ssh协议目前有ssh1 和ssh2,其实现在我们主要使原创 2011-11-10 18:05:58 · 1138 阅读 · 0 评论 -
AbstractFactory抽象工厂模式
一、C实现栈#include #include #include #define STACK_INIT_SIZE 10 #define STACKINCREMENT 2typedef int INT;typedef bool BOOL;typedef struct stack { INT *base; INT *top; INT stacksize; };enu原创 2013-08-26 15:55:23 · 1168 阅读 · 0 评论 -
Builder建造者模式
mysql编码设置 MySQL的默认编码是Latin1,不支持中文,那么如何修改MySQL的默认编码呢,下面以UTF-8为例来说明 需要注意的是,要修改的地方非常多,相应的修改方法也很多。下面是一种最简单最彻底的方法: 一、Windows1、中止MySQL服务2、在MySQL的安装目录下找到my.ini,如果没有就把my-medium.ini复制为一个my.ini即原创 2011-03-26 22:01:00 · 802 阅读 · 0 评论