週刊オブジェクト倶楽部 2003-01号の書評『オブジェクト指向入門』の中で、 OCP"Open-Close Principle"として、 「ソフトウェアモジュールは、変更に対して閉じており、拡張に対して開いているべき」 を紹介しました。第1回目は、このOCP からです。次のC言語コードを見てどう思いますか? typedef struct { int x, y; } Point; typedef struct { Point p1, p2; } Line; typedef enum { LINE, POINT } Kind; typedef union { Point* point; Line* line; } ShapeUnion; typedef struct { Kind kind; ShapeUnion of; } Shape;