再见,面向对象编程

遗产,第一根倒下的支柱

香蕉猴子丛林问题

香蕉猴子丛林解决方案

钻石的问题

类PoweredDevice {
类扫描器继承自PoweredDevice {
函数开始(){

类Printer继承自PoweredDevice {
函数开始(){

类copy继承自Scanner, Printer {

钻石的解决方案

类PoweredDevice {
类扫描器继承自PoweredDevice {
函数开始(){

类Printer继承自PoweredDevice {
函数开始(){

类复印机{
扫描仪扫描
打印机的打印机
函数开始(){
printer.start ()

脆弱的基类问题

进口java.util.ArrayList;

公共类数组

private ArrayList a = new ArrayList();

添加(对象元素)

a.add(元素);


addAll(对象元素[])

For (int I = 0;我< elements.length;+ + i)
[我]a.add(元素);//这一行将被更改

公共类ArrayCount扩展了Array

私有int count = 0;

@Override
添加(对象元素)

super.add(元素);
+ +计数;


@Override
addAll(对象元素[])

super.addAll(元素);
数+ = elements.length;

addAll(对象元素[])

For (int I = 0;我< elements.length;+ + i)
添加(元素[我]);//这一行被更改了

脆弱基类解决方案

层次的问题

层次结构的解决方案

文档
公司
手册

封装,倒下的第二根支柱

引用的问题

参考解决方案

多态性,倒下的第三根支柱

破碎的承诺

然后什么?

--

--

使用Mediumbetway娱乐官网应用程序

一个写着“在App Store下载”的按钮,点击它就会引导你进入iOS App Store
一个写着“开始吧,谷歌播放”的按钮,如果点击它,就会引导你进入谷歌播放商店
查尔斯Scalfani

查尔斯Scalfani

软件工程师、架构师、教师、作家、电影制作人、摄影师、艺术家……

Baidu