【发布时间】:2015-10-10 21:23:41
【问题描述】:
我正在尝试学习如何使我的应用程序在所有文件中具有相同的“面孔”,相同的模式,但我不知道这样做是否正确。
我想知道在软件开发中更正确的做法是将应用程序限制为仅一种模式。
例如,这就是我的应用程序的样子(只是一部分)
Api.js:
'use strict'
var Server = require('./server');
var Api = {
init: function() {
Server.init('start');
}
};
Server.js:
'use strict'
var Server = {
init: function(command) {
this.command = command;
if (command === 'start') {
this.start();
}
}
};
我在所有应用程序中都使用“初始化对象模式”。所以我要避免装饰器模式、外观,以及一切。
我应该避免使用还是可以使用多个?如果正确的答案是使用几个,根据需要,我还有其他问题。这不会使维护变得更加困难吗?是不是让代码像意大利面一样?
谢谢。
更新。
我将再次尝试解释,这次是赏金。
我已经试着问了,但似乎没有人能给我一个简洁的答案。
我想知道制作一个好的应用程序,一个好的网络应用程序,谈论代码外观的秘诀是什么。我想知道我是否应该在整个洞应用程序中保持相同的标准代码,这是好的还是真的没关系。
例如,我有两个 EXAMPLES 文件
app.js:
var server = require('./server');
var app = {
init: function() {
server.init('DEVELOPMENT');
}
};
module.exports = app;
server.js:
var server = {
init: function(env) {
if (env === 'DEVELOPMENT') {
// CODE
} else {
// CODE
}
}
}
module.exports = server;
在这种情况下,我使用一个带有方法 init 的对象,这是我在洞应用程序中使用的模式..
或者没关系,我应该写什么:
第一个对象:
var server = require('./server');
var app = {
init: function() {
server('DEVELOPMENT');
}
};
module.exports = app;
比服务器作为一个函数:
var server =function(env) {
if (env === 'DEVELOPMENT') {
// CODE
} else {
// CODE
}
}
module.exports = server;
我可以给 100 分。令人难以置信的是,我无法为这个特定问题找到一个好的答案。
谢谢。
【问题讨论】:
-
您使用模式来解决软件开发中的特定问题。如果您只有一个问题,那么您只需要一种模式。
-
我正在尝试遵循您的意图。我猜只有一个 Server 模块和许多像 Api 这样的模块。这是真的吗?
-
我的意图是在所有应用程序中仅使用对象初始化模式@RobertMoskal
-
您所说的设计模式通常仅适用于静态类型(通常是单继承)基于类的 OOP 语言,如 C++ 和 Java。 JavaScript 不是这些。我并不是说它们都不适用,但你的方法似乎很教条。
-
使用尽可能多的模式。保持简单。
标签: javascript design-patterns