适当的名称空间组织与类和枚举

5视图(30天)
嗨,伙计们,
我很好奇如何适当的组织xx的文件夹结构
设置
考虑我为一些开发驱动程序类 DeviceA 制造商。
我认为,我将使用这个 DeviceA 在几个项目中,我可能会得到另一个 DeviceB ,使用相同的手机生产商的特殊用户枚举的定义——假设音量水平将被定义为:
classdefenumVolumeLevels < uint8
枚举
volLow (0)
volMid (50)
volHigh (100)
结束
结束
所以我将写一些母牛的驱动程序类,包括一切手机生产商的特殊用户作为常量或枚举。
文件夹结构
所以我Folderstructure将看起来像:
% rootfolder:
\ \ @DeviceA \ DeviceA.m +制造商%类定义包括构造函数和析构函数方法和一些财产“体积”
\ \ @DeviceA \ SomeMethod.m +制造商文件夹%方法分别将存储在类
\ \ enumVolumeLevels.m +制造商体积%枚举类包含手机生产商的特殊用户定义的水平
现在,如果我要编写一个setter和getter方法,既检查所提供的值符合manufacturer-defined水平
classdefDeviceA
% […]
方法
% getter
函数值= get.Volume (obj)
值= Manufacturer.enumVolumeLevels (50);%一些虚拟的getter方法
结束
% setter
函数set.Volume (obj,级别)
参数
obj
模式Manufacturer.enumVolumeLevels
结束
%一些虚拟的setter方法
结束
结束
% […]
结束
独立使用
现在我goind测试类从这个项目的根文件夹。
…没问题,如果我定义该类的一个对象,并分配或读取属性 体积
测试= Manufacturer.DeviceA ();%调用构造函数
测试。体积= 50;%设置属性
disp (test.Volume);%显示这个属性
代码重构
在最初的想法后写这个驱动程序类使用它在几个特定于应用程序的项目,我将把它的根文件夹ProjectA,看起来像:
% rootfolder ProjectA:
。\ \ @DeviceA \ DeviceA.m +司机\ +制造商%类定义包括构造函数和析构函数方法和一些财产“体积”
。\ \ @DeviceA \ SomeMethod.m +司机\ +制造商文件夹%方法分别将存储在类
。\ \ enumVolumeLevels.m +司机\ +制造商体积%枚举类包含手机生产商的特殊用户定义的水平
。\ MyFunc.m一些脚本包含instancesof DeviceA-class %
但是如果我写MyFunc。m如下:
函数MyFunc
测试= Drivers.Manufacturer.DeviceA ();%调用构造函数
测试。体积= 50;%设置属性
disp (test.Volume);%显示这个属性
结束
…第二行后它会失败,因为从setter的角度枚举类 Manufacturer.enumVolumeLevels 没有定义。
我的问题是:
- - >有组织名称空间解决方案文件夹来避免这样的可见性问题吗?
也许我需要chanhe Manufacturer-package或我的文件夹结构类DeviceA使用枚举类,但我现在完全卡住了,不知道,应该是最佳实践在这种情况下,

答案(0)

下载188bet金宝搏


释放

R2021a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!