设计模式小例子理解封装、继承、多态

简介: 设计模式小例子理解封装、继承、多态

首先来说封装,封装封装,那就得有封,再得有装。

那么什么是封呢?在大话设计模式这本书中简单工厂模式的父类运算类中的两个属性,numberA,numberB就是封,属性要私有,还得有装,属性私有之后,我外部向访问这两个属性怎么办呢,这个时候访问器就出来了。有get和set这两个方法,是共有的,外部无法直接访问Operation类的两个属性,只能通过访问器来访问。这就是封装。


那么什么是继承呢?


四个具体的加法类、减法类、除法类和乘法类继承了Operation类,虽说Operation类中的两个属性是私有的,但是存在访问器,如果Operation类中没有访问器,那么就算继承了父类的属性也是没有办法使用的。还有方法的继承,子类继承父类的getResult方法,如果是抽象类那么子类必须重写抽象类的抽象方法,普通方法可以选择性的直接继承或重写。


多态:


有了重写之后,不同子类可以有自己不同的实现。那么多态到底是如何体现的呢?是通过父类的引用指向子类的实现。


在OperationFactory类中的switch块中,父类的引用分别指向的不同的子类的实现。最后在main函数中通过传进来的参数选择性的去决定实现哪一个子类。这才是多态的体现;不是单单的子类重写父类的方法。


目录
相关文章
|
6月前
|
设计模式
二十三种设计模式全面解析-装饰器模式-超越继承的灵活装扮
二十三种设计模式全面解析-装饰器模式-超越继承的灵活装扮
|
5月前
|
设计模式
**工厂模式与抽象工厂模式**都是创建型设计模式,用于封装对象创建,减少耦合
【6月更文挑战第23天】**工厂模式与抽象工厂模式**都是创建型设计模式,用于封装对象创建,减少耦合。工厂模式专注于单个对象,通过具体工厂创建具体产品,适用于简单对象创建;抽象工厂则关注一系列相关产品,提供创建一族对象的接口,适用于处理多个不兼容产品族。选择模式基于问题域的复杂性,单个产品需求时用工厂模式,多产品族时用抽象工厂模式。
33 5
|
5月前
|
设计模式 Java 数据库
Java设计模式:桥接模式实现灵活组合,超越单一继承的设计之道(十)
Java设计模式:桥接模式实现灵活组合,超越单一继承的设计之道(十)
|
设计模式 Java 数据库
JAVA设计模式2:工厂方法模式,将对象的实例化过程封装在子类
JAVA设计模式2:工厂方法模式,将对象的实例化过程封装在子类
|
6月前
|
设计模式 存储 JavaScript
[设计模式Java实现附plantuml源码~创建型] 多态工厂的实现——工厂方法模式
[设计模式Java实现附plantuml源码~创建型] 多态工厂的实现——工厂方法模式
|
6月前
|
设计模式 缓存 安全
探索设计模式的魅力:从单一继承到组合模式-软件设计的演变与未来
组合模式:构建灵活树形结构的艺术。 组合模式旨在解决如何将对象组合成树形结构,隐藏具体实现,使客户端对单个对象和复合对象的使用具有一致性。通过将对象组合成树形结构,组合模式提供了层次化的结构,使系统更灵活、可扩展。 核心思想在于统一叶节点和组合节点。叶节点代表具体的对象,而组合节点则是其他对象的容器。该设计允许我们以统一的方式处理叶子和组合,简化了许多操作。实践中,组合模式适用于具有树形结构并且希望保持结构灵活的系统。它不仅提高了代码的可重用性和可维护性,还使得添加新功能变得简单,无需修改现有代码。...
93 0
|
设计模式 Java 调度
JAVA设计模式15:命令模式,将请求封装为对象,达到读写分离的效果
JAVA设计模式15:命令模式,将请求封装为对象,达到读写分离的效果
113 0
|
设计模式 JSON 前端开发
前端面试必看(手写Promise+js设计模式+继承+函数柯里化等)JavaScript面试全通关(1/3)
前端面试必看(手写Promise+js设计模式+继承+函数柯里化等)JavaScript面试全通关(1/3)
73 0
|
设计模式
[笔记]设计模式实践_SDLGUI封装系列之创建Widget
[笔记]设计模式实践_SDLGUI封装系列之创建Widget
|
设计模式
[笔记]设计模式实践_SDLGUI封装系列之开源库SDL2_gui编译
[笔记]设计模式实践_SDLGUI封装系列之开源库SDL2_gui编译
108 0