对于大多数学习Java的人来说,面对这些物体的单词似乎渗透到骨髓中。直到我看到“ Dahua Design Model”的“ Dahua Design Model”才意识到,我对以对象为导向的编程一无所知。爪哇新手的初学者知道,面向对象的编程有三个主要特征:包装,继承,多态性。是的,这三个特征似乎是“一个-Sex”编程?该对象的三个主要特征是什么?如何将其应用于实际发展?许多人基本上在前两个问题中脱口而出,但是第三个问题基本上不知道。当我第一次被要求时,我的大脑是空白的!因此,它准备清楚地利用通过浅层的三个特征来深入“达瓦阿设计模型”。
代码编辑器在Java中实现。原始书是由C ++实施的,但两者都是面向对象的语言,不影响观看。
故事分析和设计
第四操作是加法,减法和乘法,我们可能需要做这些事情:
在看到Java之后,Kobayashi刚刚学习Java的Kobayashi看到了这个用户的故事,想到了:这不是一个人吗?
让我们测试:
结果是正确的。回到面向对象的三个主要特征:包装,继承,多态性。我似乎在Kobayashi的代码中看不到他们的数字。这是面向对象的吗?答案很明显。这是一个面向过程的过程,而不是面向对象的对象!好吧,让我们改进它,代码如下:
商业代码:操作计算类
接口代码:运行类
好吧,Kobayashi代码得到了改进。这次,Kobayashi过来了。看到代码后,他笑着说:“您是否将我的代码分为两个部分,而您被称为对象?”您在逗我吗?
我不知道您是否有类似的想法,说一个班级中两个类别中面向对象的字符的特征。我们分别写了一个分离类。此类中的代码可复制。这是提取可复制代码的软件包。重点是,返回我们的原始需求,并制作一个可以执行四个操作的计算器。是的,我们要做的是计算器,因此与计算器相关的控制台的输出也是如此“似乎没有关系,因此您应该将计算逻辑与控制台的输出分开,因此是否可以重复使用绘制的操作类。
Kobayashi似乎仍然遇到一些问题:我了解包装,如此简单的需求,您给我遗传和多态性吗?我希望您能使我蒙蔽24k Golden Dog Eyes。
如果您有请求,我们将为Kobayashi提供一些代码,我们已经进行了以下更改:
计算计算的两个涉及数量的数量和获得计算结果的方法。
第四,所有子类都继承了父类的计算,并重写了计算结果方法。
改进是完整的,很明显,这是继承。我们继承了父类的计算,并重写了计算父类结果的方法。
Kobayashi喝了一杯牛奶茶:我改变了这么长时间,并没有简单地改变我,并改变了我四到五个类别?哪一类改进,继承不如现在的密码那么好。
Kobayashi,您听我说:如果我让您添加剩余的操作,您如何处理?拆卸一堂课,您添加吗?真的可以吗?但是有两个不好的地方,您可能会误解了错误的代码(如果您发生事故,出现的可能性相对较小),在第二个发展中,有一个原则称为开放和关闭原则,该原则是开放和开放的,并且修改已关闭。
基于这两个点,我要求每个人都考虑继承是否使代码更容易或更复杂。可以使用操作类,而无需修改原始写作,删除和调查类以扩展功能。有些人可能不了解本段,但我确认您可以欣赏继承的力量!
细心的Kobayashi思考了一点,问:包装,继承,如何将多态性使用到上述代码中?我无法弄清楚!
在这一点上,什么是多态?如果不清楚,建议您查看基本概念。在此处解释,多态性被分为继承多态性和界面多态性。实际上,上述代码可用于多态性多态性。
这是多态性。这次,我们发现计算器似乎已被拆除为四个。我新人有四个不同的对象。毫无疑问,第四次操作是四个子类写的,但是多晶型词是像这样写的。不用担心,让我们使用一个简单的工厂模型来修改它!
hao le,所有的快乐,这是实现计算器的代码,其中包含包装,继承,多态性。在这一点上,我认为您应该感到震惊。
可以独立绘制UML类图,表明您已经掌握了此设计模式!
自信来自辛勤工作!大家好,我是Kobayashi,我们下次会看到它!
原始:https://juejin.cn/post/710153314451152165