编程语言的差异
本书讲的是面向对象设计模式,是用.NET中的C#语言编写,但本书并不是主要讲解C#语言或.NET框架的图书,因此本书同样适合Java、VB.NET、C++等其他一些面向对象语言的读者阅读来学习设计模式。
就Java而言,主要差异来自C#对于子类继承父类或实现接口用的都是“:”,而Java中两者是有区别的。
public class Cat extends Animal
当Cat继承抽象类Animal时,Java语法是当Superman实现接口IFly时,Java语法是
public class Superman implements IFly
然后Java中所有的方法都是虚拟的,因此不用指定new或是override修饰符。还有一些其他差异,但基本都不影响本书的阅读。
对于VB.NET的程序员,如果阅读困难,不妨去网上查找关于转换C#与VB.Net语言的工具,比如http://www.kamalpatel.net/ConvertCSharp2VB.aspx,将下载本书的源代码转换后再进行阅读。
C++的程序员,可能在语言上会有些差异,不过本书应该不会因为语言造成对面向对象思想的误读。