44得票1回答
学习解决系统设计面试问题的资源

系统设计问题是技术公司在面试中常问的一类问题,除了更常见的基于算法和知识的问题。这个术语涵盖了抽象的面向对象设计 为“大富翁”游戏草绘一个类图 以及更加注重性能的实用问题,例如 你将如何为大型Facebook游戏设计事件记录系统? 现在越来越多的这些问题涉及并发和分布式计算等主题。这些...

33得票6回答
MVC模式中的“Hello World”

在一次某公司的面试中,我被问及以下问题:“你知道哪些设计模式?”然后我被要求使用MVC设计模式编写最简单的“Hello World”应用程序。最后,我用JavaScript编写了一个程序。var arr = ["a","b","c","d"]; // this is an array, s...

32得票6回答
“instanceof”操作符的使用是否被认为是糟糕的设计?

在我的一个项目中,我有两个“数据传输对象”RecordType1和RecordType2,它们都继承自RecordType的抽象类。 我希望两个RecordType对象都能在同一个RecordProcessor类中由“process”方法处理。我的第一想法是创建一个通用的process方法,...

30得票3回答
适配器模式和代理模式有什么确切的区别?

我理解适配器模式和代理模式都是为了让两个不同的类/对象能够相互通信而使它们兼容。它们都是结构型模式。我认为它们非常相似。 有人能解释一下它们之间的具体区别吗? 编辑: 我看过这个问题this。但我更想对比适配器模式和代理模式。

20得票5回答
Java - 2种双向“拥有关系”的实现方法

我刚开始为我的雇主开发一个管理软件的项目。我有一个微小但可能很简单的问题,找不到任何相关信息。 在对象之间建立双向“拥有”关系是否明智/良好的实践?例如,一个客户对象可以“拥有”一个站点,然后站点“拥有”一个客户,其中客户对象是“拥有”站点的客户?public class Client { ...

19得票4回答
“适配器模式”和“中介者模式”的确切区别是什么?

我知道适配器模式(Adapter)是一种结构型模式,而中介者模式(Mediator)是一种行为型模式。但据我理解,它们都是将两个(或更多)可能不兼容(难以维护)进行直接通信的类相连接。 有没有人能够对这两种模式进行详细比较,并指出它们的确切区别? 以下是TutorialsPoint提供的适...

19得票4回答
策略模式和继承的区别

对于策略模式和继承有相同的概念,因此我可以使用继承来实现策略模式,这听起来比策略模式更简单和清晰。 策略模式:class IBase { public: virtual void processAction(void *data) = 0; // pure virtual } cl...

18得票5回答
在基类中声明子类类型,是好还是不好?

最近我遇到了一些代码,它在基类中将子类型声明为枚举。以下是一个简单的示例:public enum EmployeeType { Manager, Secretary } public class Employee { public string Code { get;...

18得票4回答
面向对象编程中具有状态和行为的对象

我听说过“对象具有行为和状态”或只具有其中之一的术语。但是它们有何区别或意义是什么,如果有人能给出一个例子,我将不胜感激。

18得票2回答
Head First Design Patterns与Head First面向对象分析与设计比较

我目前正在学习Java,使用的是《Head First Java》这本书,同时也开始考虑了解更多关于面向对象编程(OOP)和设计模式的知识。我的问题是,在学完《Head First Java》之后,应该读哪一本书。我被《Head First Design Patterns》和《Head Fir...