2011年3月13日 星期日

Working with String Tokenizer

為何寫 StringTokenizer class in C++?

1. C++ STL 沒有現成的 StringTokenizer。

2. Standard C 中雖然有 strtok() 函式,可惜設計不良。理由:Give one entity one cohesive responsibility. strtok() 擁有太多責任了:(1) Tests if there are more tokens available from this tokenizer's string. (2) Returns the next token from this string tokenizer.



怎麼寫 StringTokenizer class?

1. 介面可以參考 Java StringTokenizer utility class. 說穿了,StringTokenizer 就是一種 Iterator. The intent of iterator: Provide a way tto access the elements of an aggregate object sequentially without exposing its underlying representation. [GOF]

2. Unit testing 可以參考 Google
chrome / trunk / src / base / string_tokenizer_unittest.cc.

3. 實做可以參考 Google
chrome / trunk / src / base / string_tokenizer.h
.



Good artists copy, great artists steal. 哈哈,別再自己造輪子了。

沒有留言:

張貼留言