类的设计

多个类的设计:

  • 类的拆分
  • 类的合并
  • 数据关系(数据成员是否进行拆分)
  • 行为关系

单个类的设计:

  • 行为的可见性(公开or私有?)
  • 行为参数的抽象和封装(成员函数的参数可能具有某种共同的特征,可以抽象为一个类)
  • 依赖or关联的选取
  • 实现的抽象与封装 :(甚至可以将整个函数实现全部委托给另一个对象,也就是通常所说的委托(delegate))
  • 数据的抽象与封装:(成员属性未必是内置类型,有可能需要根据实际需要将类型抽象为一个类)
  • 类方法与实例方法:当存在多个重载函数时,语义不清楚,不易扩展
  • eg.
Balloon(){}
Balloon(int color){}
Balloon(Gas & gas){}

应用:单件的实现(从代码角度限制用户最多只能创建一个实例)

//Ball是类名
static Ball& GetInstance() {
	static Ball b;//由于是static,后面用户每调用一次该函数都只能返回第一次创建的对象。
	return b;
}

更推荐的一种做法:用指针维护,置于堆区(涉及多线程的同步问题时更安全)

//static Ball* pBall; 
static Ball* GetInstance () {
	if (pBall == nullptr) pBall = new Ball;
	return pBall;
}
static void releaseInstance () {
	delete pBall;
	pBall = nullptr;
}

你可能感兴趣的:(C++面向对象程序设计,c++,开发语言)