在涉及面向对象的设计和分析时,有一组似乎在面试和课程中常用的问题.这是其中之一; 不幸的是,我在大学的OOP教授实际上从未给出答案,所以我一直在想.
问题如下:设计一组用于模拟电梯组的基本对象/方法.什么是对象及其属性/方法?
为了论证,让我们假设我们的建筑有二十层; 底层是大厅,二楼连接到停车场(因此,人们将进入/离开底层或二楼的建筑物).有一个电梯银行为所有楼层提供服务; 电梯组中有三个电梯井,每个井有一个电梯.
在面向对象模型中对此进行建模的正确方法是什么?
自从我第一次开始学习面向对象编程以来,我一直在努力解决这个问题:如何在"正确的"OOP代码中实现记录器?
通过这个,我的意思是一个对象,它有一个方法,我们希望代码中的每个其他对象都能够访问; 这个方法将输出到console/file/whatever,我们将用于记录 - 因此,这个对象将是logger对象.
我们不想将logger对象建立为全局变量,因为全局变量很糟糕,对吧?但是我们也不希望在每个单个对象中调用的每个方法的参数中都传递logger对象.
在大学里,当我把它带到教授那里时,他实际上无法给我一个答案.我意识到实际上有可能实现此功能的包(例如Java).然而,我最终要寻找的是如何正确地以OOP方式实现这一点的知识.
总新手问题在这里; 我提前道歉.
假设我有一个用C编写的守护进程,它每五分钟左右唤醒一次,如果输入队列中有任何内容,则进行一些处理,然后再回到睡眠状态.现在假设有一些处理,它只需要在某个(可配置的)时间之后 - 例如,下午2点(和午夜之前)).
在C中,将当前时间小时变为int变量的最快,最好的方法是什么,以便可以轻松检查 - 以确定实际上是否在今天下午2点之后?
在tig中,我从主视图开始,当我点击Enter提交时,我会看到一个带有差异视图的分屏。
我滚动浏览差异视图,然后不小心输入了O. 现在差异视图已最大化。我不想这样,想回到之前看到的东西。
如何取消最大化,以便再次拥有原来的分屏?