Matlab混入模式(Mixin)

Mixin是一种类,这种类包含了其他类要使用的特性方法,但不必充当其他类的父类。Matlab无疑是支持多继承的。我们可以利用 Matlab 的这种特性,实现一种叫做 Mixin 的类。MixIn的目的就是给一个类增加多个功能,这样,在设计类的时候,我们优先考虑通过多重继承来组合多个MixIn的功能,而不是设计多层次的复杂的继承关系。(见https://blog.csdn.net/qq_31156277/article/details/80659537)

Automobile.m

classdef Automobile < handle
    methods(Abstract)
        dispAutomobile(~);
    end
end

Car.m

classdef Car < Automobile
    methods
        function dispAutomobile(~)
            disp("Car");
        end
    end
end

Bus.m

classdef Bus < Automobile
    methods
        function dispAutomobile(~)
            disp("Bus");
        end
    end
end

Color.m (混入类Mixin)

classdef Color < handle
    methods(Abstract)
        dispColor(~);
    end
end

Red.m(混入类Mixin)

classdef Red < Color
    methods
        function dispColor(~)
            disp("Red");
        end
    end
end

Blue.m (混入类Mixin)

classdef Blue < Color
    methods
        function dispColor(~)
            disp("Blue");
        end
    end
end

RedCar.m

classdef RedCar < Car & Red
    methods
        function dispThis(obj)
            disp("RedCar is:");
            obj.dispColor();
            obj.dispAutomobile();
        end
    end
end

BlueBus.m

classdef BlueBus < Bus & Blue
    methods
        function dispThis(obj)
            disp("BlueBus is:");
            obj.dispColor();
            obj.dispAutomobile();
        end
    end
end

测试代码:

rc = RedCar();
rc.dispThis();

bb = BlueBus();
bb.dispThis();​

参考资料:

https://blog.csdn.net/cwy0502/article/details/90924330

https://blog.csdn.net/u012814856/article/details/81355935

https://blog.csdn.net/weixin_34006468/article/details/87266145

https://blog.csdn.net/zhongbeida_xue/article/details/88601352

https://blog.csdn.net/u013985879/article/details/82155892

(0)

相关推荐

  • 还在用C编写LVGL上的画面,何不试试Python? (2)

    在上一篇中,小编为大家简单介绍了LVGL库,并且介绍了如何实现lvgl和MicroPython的绑定,使得lvgl以MicroPython模块的形式供用户通过Python进行调用,方便开发. 本篇小编 ...

  • Vue3.x 从零开始(二)—— 重新认识 Vue 组件

    Vue 3 更新了许多组件中的语法,包括生命周期.filter.setup.teleport 等 为了介绍这些特性,需要先了解一下 Vue 组件的基本玩法 这篇文章介绍的内容基本都是沿用 Vue 2 ...

  • Matlab状态模式

    状态模式就是将状态的条件判断语句转化成其函数重写形式,利用了面向对象语言的多态性,本文根据https://blog.csdn.net/lm324114/article/details/78819602 ...

  • 野火指南者开发板移植 lvgl 库

    前言 由于近期要做一个装置 ,想着把装置做的好看一点,就打算使用 GUI 来做一个信息的相关显示,之前听说过一款比较轻量级的图形库,也就是 lvgl,手头又正好有一块搭配屏幕的野火指南者开发板,单片机 ...

  • Matlab组合模式

    组合模式(Composite),将对象组合成树形结构以表示"部分-整体"的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性.组合模式的目的是让客户端不再区分操作的是组 ...

  • vue3.0 mixin 混入

    首先是官方定义:混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能.一个混入对象可以包含任意组件选项.当组件使用混入对象时,所有混入对象的选项将被"混合&qu ...

  • Matlab桥接模式

    桥接模式(Bridge)是一种结构型设计模式.它是用组合关系代替继承关系来实现,可以处理多维度变化的场景(https://blog.csdn.net/qq_31156277/article/detai ...

  • Matlab代理模式

    代理模式(Proxy)就是给一个对象提供一个代理对象,并有代理对象来控制对原有对象的引用.代理模式和装饰模式非常类似,但最主要的区别是代理模式中,代理类对被代理的对象有控制权,决定其执行或者不执行.本 ...

  • matlab使用经验模式分解emd 对信号进行去噪

    原文链接 : http://tecdat.cn/?p=2567 对于这个例子,考虑由具有明显频率变化的正弦波组成的非平稳连续信号.手提钻的振动或烟花声是非平稳连续信号的例子. 以采样频率加载非平稳信号 ...

  • Matlab中介者模式

    中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性.这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护.想象一个乱糟糟的开发小组的工 ...

  • 浅谈乡村治理模式发生了哪些变化?

    随着乡村现代化的发展,越来越多的乡村走上了建设数字乡村的道路,从传统的乡村治理到使用互联网数字化治理的模式,乡村的风貌和农民的生活也发生了巨大的变化,接下来就让我们一起来了解一下乡村治理模式到底发生了 ...

  • 【路衍经济】基于高速公路服务区发展路衍经济的经营方式与商业模式研究

    作者简介  陈楚宣:高级会计师.高级经济师,现任广东省交通集团有限公司副总会计师.战略发展部部长,广东粤运交通股份有限公司非执行董事.董事会审计及企业管治委员会成员.董事会薪酬委员会成员,广东省公路学 ...