Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
选择的OOP抽象必须尽可能贴近生活吗?_Oop - Fatal编程技术网

选择的OOP抽象必须尽可能贴近生活吗?

选择的OOP抽象必须尽可能贴近生活吗?,oop,Oop,我正在为我的应用程序设计一个库,它封装了Windows智能卡子系统 实际上,有一个智能卡连接到智能卡读卡器,读卡器连接到PC。智能卡有多种类型(例如Javacards和.NET卡)。设计该系统的一个想法如下: 脚踏板底座 在现实生活的项目中拥有一个好的架构是否重要,或者我只是在浪费时间去学习一些不重要的东西 如果你正在构建一个项目,你的用户界面是非常重要的 如果您正在构建OOP库,那么您的API非常重要 在这两种情况下,您试图回答的问题是,“这(API、屏幕、报告)是否易于使用?是否易于阅读?是

我正在为我的应用程序设计一个库,它封装了Windows智能卡子系统

实际上,有一个智能卡连接到智能卡读卡器,读卡器连接到PC。智能卡有多种类型(例如Javacards和.NET卡)。设计该系统的一个想法如下:

脚踏板底座 在现实生活的项目中拥有一个好的架构是否重要,或者我只是在浪费时间去学习一些不重要的东西

如果你正在构建一个项目,你的用户界面是非常重要的

如果您正在构建OOP库,那么您的API非常重要

在这两种情况下,您试图回答的问题是,“这(API、屏幕、报告)是否易于使用?是否易于阅读?是否易于解释

花时间使API尽可能有用是绝对值得的


至于你的标题问题,不,OOP抽象不一定要尽可能贴近生活。但是,API越接近人们使用现实生活对象的方式越好。

你朋友的说法基本上是正确的

我的朋友说,我们没有 直接与读者合作 图书馆的主要目标是 玩纸牌,所以我们应该躲起来 来自图书馆用户的读者

你的朋友是否正确并不重要;这正是你编写抽象时应该考虑的问题。库用户将如何考虑他们使用库来完成的任务?弄清楚这一点,然后尽可能地实现抽象

关于构建“一体式软件包”时违反SRP的问题,目前编程模型中的“程序员”不仅负责编写代码,还负责编译、加载、运行和整理代码输出。不久前,这些次要任务由一个完全不同的人处理(或者可能有很多人)。我肯定有一些人记得把打孔卡带到计算机部门。哪种型号违反了SRP?回答:都没有。在过去的30年里,程序员负责什么的概念已经改变了

如果您找到一个更适合改变单一责任概念的模型,那没关系,因为对于您的库用户来说,该模式可能是一个更好的抽象