在这个例子中,我们要写一个简易的控制台计算器。实现的功能的丰富性在其次,最重要的是面向对象思想和简单工厂模式思想的体现。Now,let's begin!!!
首先,我们让业务逻辑和界面逻辑分开,让他们之间的耦合度下降,只有分离开,才能达到容易维护或扩展。先来看看抽象出来的运算基类。将GetResult方法设置为virtual,是为了通过多态来实现在子类中实现各自的需求。
加法子类:
减法子类:
如果想实现*或/,用户可以随意扩展,这样就体现出了可扩展性。
工厂类,用来实例化对象,问题的关键在于,对于到底要实例化谁,将来会不会增加实例化对象,比如增加乘法或除法运算等,这是很容易变化的地方。所以,我们采用一个单独的类来做这个创造实例的过程,这就是传说中的工厂。
最后,我们写一个客户端,具体的流程看代码吧~