自定义个性”唐诗宋词”模块

conky 格言妙语
通过本文你将学到 自定义”唐诗宋词”模块来实现:

当我开始写”唐诗宋词“之前根本没有想到要输出”唐诗300 首”,因为当时在开始接触 设计模式,所以想用PHP写个东西玩玩,当时那些默认模块(唐诗300、宋词100、增广贤文、谚语……)已经被人用shell写成conky的脚本长期定居于我的linux桌面上,那么材料就是它了。实际上这个东西写法类似于设计模式中的策略模式(Strategy), 每加一个模块,只要根据接口重写一个函数即可。最简单的莫过于显示单句了,请看下面这个例子:

阅读完整的文章… »

LD on 08月 30th, 2008 | File Under plugins | 3 Comments -

Head First 设计模式: 第三课 装饰者模式

装饰者模式(Decorator),以 Starbuzz Coffe 的多风味咖啡为例。

  1. 饮料抽象类 A ;
  2. 调料抽象类 B 继承到 A ;
  3. 饮料类 C 继承 A ;
  4. 调料类 D 继承 B,并引入 A 对象;
  5. 用调料 D 装饰 B,嵌套直到需求完全;
  6. D 可以在 C 的行为前/后加上自己的代码(行为),也可完全代替 C 的行为;

以星巴兹咖啡为例的装饰者模式定义: 动态地将责任附加到对象上。诺要扩展功能,装饰者提供了比继承更有弹性的替代方案。

OO原则:OO原则(开放 - 关闭): 对扩展开放,对修改关闭。

PS: 我不想记太多的东西,设计模式不是理解就可以的,而是实际应用中的磨砺出来的。即使用PHP重写了代码后只有3层收获,设计模式的目标就是通过子类(传入相对接口对象)调用抽象超类和接口的方法来扩展行为,而不必大量修改原有代码。刚刚接触难以理解,可马上会爱不释手。

LD on 08月 30th, 2008 | File Under 设计模式 | No Comments -

WP插件:唐诗宋词 更新至0.2版,加入widget

昨天花了点时间,为”唐诗宋词”插件加了个 Widget (效果临时摆在本博客右侧栏的Last.fm挂件下),配置界面的11个模块一个一个加太麻烦…… 主要更新内容如下:

  1. 加入了 show_chinese_poetry 函数,可以控制刷新时间;
  2. 为插件写了个Widget;
  3. 为widget添加配置界面(截图见文章最后);

实际上2和3就是同一个,不过我无聊,呵呵。

使用说明和下载地址见”唐诗宋词”的发布页: WP插件 ─ 唐诗宋词

阅读完整的文章… »

LD on 08月 29th, 2008 | File Under plugins | 1 Comment -

终于又叼上了牙签

经过两天的穷折腾终于完成了搬家工程 ── 从5栋搬会到6栋。所以现在也终于恢复叼着牙签的经典姿势,哈哈!灵感远远不绝,这种感觉就好比:在你饿极之时,有人端上一碗香喷喷的白米饭,然后告诉你,别急,还有一大盆红烧肉没上 ── 瞬入天堂。 :-) 结果就是这样,所以把插件的Widget写了,打牙签,吃猫耳朵,听 “Maximum The Hormone” 乱嚎…… OK, 兴奋完 继续学习,其实现在回头就看到”猴子”,压力不是一般的大。

简单的人写在不简单的一天结束之时,可不可以不简单?

LD on 08月 28th, 2008 | File Under 心情札记 | 2 Comments -

Head First 设计模式: 第二课 观察者模式

学习了设计模式第二课:观察者模式(Observer),这是一个一对多的问题,所谓”牵一发而动全身“,主题的状态决定观察者的动作。

观察者模式 ── 在对象之间定义一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象都会收到通知,并自动更新。

  1. 新建主题对象 A
  2. 新建观察者 B(传入主题对象 A)
    1. 拷屁主题对象 A
    2. 注册观察者(把自个传入主题对象 A)
  3. 主题对象 A 中加入观察者 B, 依赖完成
  4. 主题状态改变 驱动 观察者动作 [push方式]
  5. 观察者动作 [pull方式]

对应接口:

  • 主题接口 (主题对象)
  • 观察者接口 (观察者)
  • 外部动作接口 (观察者)

观察者利用主题接口向主题注册,而主题利用观察者接口通知观察者。 ── 松耦合

阅读完整的文章… »

LD on 08月 26th, 2008 | File Under 设计模式 | No Comments -