我回答说我将有一个二维阵列.
然后我将有3个功能
但是他不满意,任何人都能对这个问题给出一个好的答案吗?
我发现这个堆栈溢出链接与我的问题有关. 编程设计帮助 - 如何构建数独求解器程序?.
但是我想要一个适当的面向对象设计(比如应该是类,继承和其他细节),这些都是面试官对我的期望.
我的任务是设计一个在线预订系统。用户可以在其中输入邮政编码/人数/预订时间并获得餐厅列表。假设(用户和餐厅始终在同一城市)
每个餐厅可以有多个座位不同的桌子。因此,可容纳4人的2张桌子和可容纳4人的4张桌子。
我在使用正确的数据结构时遇到了麻烦。
我的课如下
餐厅:包含timeofopening,timeOfClosing,totalNoOfSeatsAvailable不确定我如何在餐厅内存储表格信息。为表拥有一个单独的类没有任何意义。我需要的所有信息就是howMantables是免费的,它们的大小是多少。
保留:保留实际的保留并允许取消保留
ReservationSystem:包含“列表checkAvailability(长期,国际人士)”的接口,这将如何返回此列表?最初,我想到了使用priorityQueue来维护一个队列,该队列的席位数量最多。但是然后我将遍历该列表以查看时间是否正确,甚至进行保留,然后一旦进行保留,请更新此队列。一个问题是队列执行所有重复操作。
我的具体问题是:
编辑:关于如何存储表信息的问题。我特别担心的是,存储表类将意味着我正在创建不必要的对象。这是我的理由。可容纳2个人的5张桌子具有完全相同的对象-我的意思是,它们之间没有任何有意义的信息是不同的。我只需要数字。座位数/桌子数(如果我有4桌但3 peole的桌子,我会考虑使用这张桌子)
我想到创建3个数组。假设表格代表1,2等,所以int [] differentSeatingOnTable; 它的索引是表,值是允许的座位。接下来是具有totalNoOfThosetable的表数组,其中索引是表,值是该表的总数。空闲表的相似之处freeTables的索引是表,剩余多少个空闲表。
在最近的一次JavaScript访谈中,我被问到有关重载和覆盖的问题.我知道这是Java中的一个概念:
但是在JavaScript中是否有类似内容,如果是这样,代码示例会是什么?我的理解是,重载在javascript中并不常见.你为什么需要在JS中使用"重载"?
OverRiding对我来说有点清楚 - 过度骑行的一个例子是在继承超级类的子类中,但是通过一些方法/属性为子类创建唯一的方法/属性.
javascript computer-science object-oriented-analysis node.js
我知道抽象类不是Ruby中的一个特性,当然背后有一个哲学原因,但我想知道是否有办法解决通常使用其他语言(如C++和Java)中的抽象类来解决的问题.
例如:我需要三个班Triangle,Square和Circle.因为这些都是几何图形,我想用在编码叫做抽象类AbstractFigure有一个抽象方法get_area,这将通过具体的类来实现Triangle,Square和Circle.
我如何按照Ruby哲学做到这一点?
详细解释Java泛型类的以下两个版本之间的差异(如果有)?
class C<T>{
T x;
void foo(T y) { … }
}
Run Code Online (Sandbox Code Playgroud)
和
class C<T>{
T x;
<T> void foo(T y) { … }
}
Run Code Online (Sandbox Code Playgroud)
还有一个问题:什么可以写在foo()的主体中,取代导致Java编译器接受C的第一个版本但拒绝C的第二个版本的"...".
我很困惑.
我正在使用域驱动设计构建的应用程序中的一些概念遇到一些麻烦.
我有以下几层:
所以,我们假设我有以下类:
OrderEmailServiceOrderNotificationServiceOrderApplicationService显然,Order进入域层并OrderApplicationService进入应用层.这EmailService是用于发送电子邮件的通用服务,并在基础结构层中实现.这OrderNotificationService是发送订单通知的具体实现.该OrderNotificationService用途EmailService发送实际的电子邮件.
所以,我的第一个问题是:是否OrderNotificationService将实现为域服务,应用程序服务或基础结构服务?
对于我的下一个问题,让我们假设以下对象:
EmployeeSalesforceService假设当员工加入系统时,他们也应该被添加到Salesforce.这SalesforceService是一个使用Salesforce api注册用户的服务.请问SalesforceService可以实现为域服务或通用的基础设施服务,应用服务将通过向员工信息使用?
感谢您的建议.
architecture oop domain-driven-design separation-of-concerns object-oriented-analysis
在阅读抽象时,我遇到了以下声明
"抽象仅捕获与当前视角相关的对象的细节"
例如.从驾驶员的角度来看,Car class会是
public class Car
{
void start();
void applybrakes();
void changegear();
void stop();
}
Run Code Online (Sandbox Code Playgroud)
从机械师的角度来看,Car class会是
public class Car
{
void changeOil();
void adjustBrakes();
}
Run Code Online (Sandbox Code Playgroud)
我的问题,在设计系统时,我们是为一个用户视角(驱动程序还是机制)设计的,还是我们可以设计多个用户视角并根据用户类型进一步抽象出来?
希望我的问题很明确.
谢谢
我的问题很简单.今天,前端和后端都有很多框架,它们实现了MVC(模型 - 视图 - 控制)架构.
"MVC中的控制器"是Facade Design Pattern的一个例子吗?
model-view-controller design-patterns controller facade object-oriented-analysis
这是一个例子.
假设以下约束:
我有以下课程:
AbstractShop
AbstractProduct
功能:
AbstractShop>>addProduct: aProduct
(products size < 5)
ifTrue:[^ products add:aProduct]
ifFalse:[ self error: 'A shop can only have five products' ]
FoodShop>>addProduct: aProduct
(aProduct isMemberOf: Food)
ifTrue:[^ super addProduct: aProduct]
ifFalse:[ self error: 'You can only add food products to a foodshop' ]
ClothesShop>>addProduct: aProduct
(aProduct isMemberOf: Clothing)
ifTrue:[^ super addProduct: aProduct]
ifFalse:[ self error: 'You can only add clothing products to a clothes shop' ] …Run Code Online (Sandbox Code Playgroud) 我正在研究面向对象的设计原则和启发式方法.
在这本名为"面向对象设计启发式"的着名书籍中,Arthur J. Riel(1996)看到了这种启发式:
启发式4.13:一个类必须知道它包含什么,但它永远不应该知道谁包含它.基于J.Reil,主要原因是可重用性.
但是在Swing Structure中,我们可以直接访问Parent对象的引用.
例如: label.getParent()
所以我的问题是:
为什么swing组件有.getParent()方法?现有的这种方法有
哪些面向对象的原理或启发式方法?
oop ×6
java ×4
2d-games ×1
abstraction ×1
architecture ×1
controller ×1
facade ×1
generics ×1
javascript ×1
node.js ×1
ruby ×1
smalltalk ×1
swing ×1
typechecking ×1