第一个面向对象的程序设计语言是6 0年代开发的S i m u l a - 6 7。其目的是为了解决模拟问题。 典型的模拟问题是银行出纳业务,包括出纳部门、顾客、业务、货币的单位等大量的“对象”。 把那些在程序执行期间除了状态之外其他方面都一样的对象归在一起,构成对象的“类”,这 就是“类”一词的来源。 类描述了一组有相同特性(数据元素)和相同行为(函数)的对象。类实际上就是数据类 型,例如,浮点数也有一组特性和行为。区别在于程序员定义类是为了与具体问题相适应,而 不是被迫使用已存在的数据类型。
实现动机
工厂方法是简单地创建派生类对象的方法,也是很常用的,工厂方法内部使用switch-case根据不同的key去创建不同的派生类对象,下面是一个伪代码。
Message* create(int type)
{
switch (type)
{
case MSG_PGSTATS:
m = new MPGStats;
break;
case MSG_PGSTATSACK:
m = new MPGStatsAck;
break;
case CEPH_MSG_STATFS