桃源谷

心灵的旅行

人生就是一场旅行,不在乎旅行的目的地,在乎的是沿途的风景和看风景的心情 !
posts - 32, comments - 42, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

02 2009 档案

     摘要: 函数指针提供了一些极其有趣,有效和绝妙的编程技术。你能用它代替switch/if语句来实现你自己的晚绑定(late-binding)或者作为回调(callback)来使用。不幸的是–可能由于它的语法比较复杂–几乎所有的电脑书籍和文档上都讲解的不多。即便如此,它们也只是做了相当简单和肤浅的说明。而对于函数指针你只需要明白它是什么以及它的语法,因为它和一般的指针比起来从来不用关心内存的分配和释放,所以它被使用的时候是不易产生错误的。但你要注意的是: 要时常问自己是否真的需要函数指针。因为虽然用它来实现晚绑定也很漂亮,但用既存的C++数据结构的话会使代码更可读和更简洁。另外,晚绑定的一方面实际上就是运行期(runtime): 如果你调用了一个虚拟函数,你的程序会根据一个存储所有函数的虚拟表(V-Table)自己来确定到底真正调用的是哪一个。这就要花费一些时间而用函数指针代替虚拟函数的话有可能会节省一些时间。BTW: 现代的编译器在这方面都做得非常好!就那我的Borland编译器来说这个时间就比调用一次虚拟函数能节省2%。

注:晚捆绑(late binding)可能来自c++  阅读全文

posted @ 2009-02-12 16:08 lymons 阅读(2753) | 评论 (5)  编辑 |

posted @ 2009-02-02 13:08 lymons 阅读(2006) | 评论 (0)  编辑 |

     摘要: bstract factory:为创建相互关联(风格类似)的一系列的对象提供了一个通用接口,而不需要指定具体的类(产品)名。
factory method:定义一个用来创建对象的接口,并让子类来决定实例化哪一个具体的类(产品),从而让具体类的实例化延迟到子类。
他们的主要区别在于,abstract factory强调的是把诺干个产品按照风格进行分类, 为相同风格的一系列对象(产品)提供一个工厂类,因此,只要改变工厂类的实例,就能到达改变这一组产品的风格和外观。而这一风格的产品的生产可以利用工厂方法来实现. 这其中, factory method强调的则是先在父类实现创建对象的行为,具体的行为或者具体对象(产品)的实例化则延迟到子类实现。  阅读全文

posted @ 2009-02-02 12:58 lymons 阅读(639) | 评论 (0)  编辑 |

posted @ 2009-02-02 12:54 lymons 阅读(1199) | 评论 (1)  编辑 |

posted @ 2009-02-02 12:52 lymons 阅读(399) | 评论 (0)  编辑 |

posted @ 2009-02-02 12:47 lymons 阅读(766) | 评论 (0)  编辑 |

posted @ 2009-02-02 12:31 lymons 阅读(4673) | 评论 (0)  编辑 |

posted @ 2009-02-02 11:58 lymons 阅读(1085) | 评论 (0)  编辑 |

posted @ 2009-02-02 11:52 lymons 阅读(1688) | 评论 (0)  编辑 |

posted @ 2009-02-02 11:28 lymons 阅读(499) | 评论 (0)  编辑 |

     摘要: 「Code Reading―从开源里学习软件开发的技法」有这样一本书。我是这本书日本版的译者, 呵呵有点王婆卖瓜---自卖自夸的感觉,但是把读源代码作为主题的在市面还没有其他的书。我认为这是一本网罗了从技法到工具,数据结构,构架,还有利用代码的实际读法的实例的好书。

照片1●「Code Reading―跟着开源来学习软件的开发技法」
 这本书的前言里,编程高手Dave Thomas写下了下面的话。
 没有研读过其他作家作品的伟大作家,没有研究过其他画家笔法的伟大画家,没有盗取过并肩作战的同事的技术的技巧高明的外科医生,没有在副驾驶的位置积累实际经验的波音767的机长,在现实生活中真的会存在他们这样的人吗?  阅读全文

posted @ 2009-02-01 15:54 lymons 阅读(5581) | 评论 (0)  编辑 |

posted @ 2009-02-01 15:41 lymons 阅读(1430) | 评论 (1)  编辑 |

我的个人简历第一页 我的个人简历第二页