Head First设计模式学习笔记(一)——策略模式

Head First设计模式一开始为我们介绍了一个案例:设计鸭子问题。

Head First设计模式学习笔记(一)——策略模式_第1张图片

这是书中的思路:仔细思考,这极其可能是我们解决问题是,作为新手所采用的思路。

它这里提出:

设计原则一:把尽可能的所有的要变化的东西封装在一起,不变化的封装一起。

它主要的思路是:把需要变化的东西,拿出来进行变化,不需要的稳定分开,不会影响以后的维护。这是所有设计模式的精神所在。

继续看鸭子问题,以这个思路继续!

Head First设计模式学习笔记(一)——策略模式_第2张图片

这里引入一个新的原则:

设计原则二:针对接口编程,不是针对实现编程。

这个原则的思想是弹性,不能是为了实现而去实现,这也是我们新手编程当中的遇到的问题,类似很多边界值,临界条件,代码的灵活性都是编程良好的习惯,考虑全面,动态实现。

Head First设计模式学习笔记(一)——策略模式_第3张图片

接口编程 == 多态


针对接口编程,又称为针对超类编程,其实就是每个接口就是一个类,那么每个类之间就会有一种关系,彼此的使用,主要两个使用——组合、继承。

这里便有一个设计原则,你也一定听过的:

多用组合,少用继承。

Head First设计模式学习笔记(一)——策略模式_第4张图片

代码示例:(此部分来源)

class Computer
{
	Memory mMem;
	Disk mdisk;
	CPU mcpu;
	MainBoard mmainboard;
public:
	Computer()
	{
		cout << "Computer()" << endl;
	}
	~Computer()
	{
		cout << "~Computer()" << endl;
	}
};

输入 computer c: 就会自动调用Memory Disk CPU MainBoard 等类的基类;

 

你可能感兴趣的:(C++,设计模式,读书笔记,Head,First设计模式,设计模式,读书笔记,策略模式)