matlab - OOP 设计模式/从文件或 API 中读取信息?
问题描述
我有 (x2) 方法来获取我的对象的信息:
- 从存储在光盘上的文件中读取
- 通过应用程序的 API 访问制作文件的应用程序
获取信息后,我将有以下方法:
- 展示
- 分析
- 更改信息(再次作为文件或通过 API)
如果我更改信息,则不必与我收到信息的方式相同。因此我可以:
- 通过文件接收信息并通过API推送信息
- 以及所有其他明显的组合......
我不会有其他方法来输入/输出数据(例如 API 和文件涵盖所有选项)。
代码将在 Matlab 中,因此我无法轻松访问枚举类型和其他一些不错的编程功能,因此我很想使用设计模式而不是类中的开关。
问题
什么是适合这个问题的设计模式?
我应该使用设计模式并编写几个类来完成这项工作,还是只编写一个带有文件或API开关的类?
解决方案
允许多种形式读取数据的一种合乎逻辑的方法是使用多种形式的构造函数(或read
方法):
classdef DataObject
%...
methods
function obj = DataObject(fname)
if nargin==1
% read data from file fname
%...
else
% read data through an API
%...
end
end
end
end
你可以做
obj1 = DataObject; % Reads through API
obj2 = DataObject('somefile.txt'); % Reads from file
类似的事情可能适用于write
方法。
推荐阅读
- flutter - 软键盘覆盖了 SlidingUpPanel 上的 TextInput 颤动
- c# - 防止在 StateHasChanged 之后重新加载 ChildComponent?
- arrays - 如何编辑 NSObject 数据
- django - Django 管理员 - 创建自定义列表
- python - 如何按日期对列进行分组并从 python 中的另一列获取平均值?
- java - Retrofit2 response.body() 返回 cfar0@13b62af9
- python - python中的操作数无法一起广播错误
- python - Matplotlib 3.3.3:更改单个刻度的颜色不再起作用
- python - Python中的'FT'[boolean]之类的语法是什么?
- reactjs - ReactJS + Material UI:如何将 Material-UI/Pickers 的默认值设置为 null/no date selection
独立组件?