设计问题:哪个更好的做法? [英] Design Question: Which is Better practice?
问题描述
getUsername
, setUsername
, getEmail
, setEmail
等)。从主类我实例化每个webservice调用对象,当我有一个新的用户名请求时,密码我调用每个类的 createUsername()
方法(配置数据) 您是否有任何关于如何应用此问题的设计模式的建议?我想到做一个类,它将有一个方法 createUsername(){}
,在这我将调用每个webservice类,并将每个结果存储在一个预定义的数组。有没有人有任何建议或更好的做法?
目前我有:
类webservice1calls {
函数createUser($ username,$ password){}
函数deleteUser($ username,$ password){}
函数createGroup($ groupname){}
function deleteGroup ($ groupname){}
}
class webService2calls {
function createUser($ username,$ password){} //不同的实现
函数deleteUser($ username,$ password){} //不同的实现
函数createGroup($ groupname){} //不同的实现
函数deleteGroup($ groupname){} //不同的实现
}
class webService3calls {
function createUser($ username,$ password){} //不同的实现
function deleteUser($ username ,$ password){} //不同的实现
函数createGroup($ groupname){} //不同的实现
函数deleteGroup($ groupname){} //不同的实现n
}
//我的像代理类:
class webServiceCalls {
function createUser($ username,$ password){
$ ws1 = new webService1calls();
$ ws2 = new webService2calls();
$ ws3 = new webService3calls();
$ res1 = $ ws1-> createUser($ username,$密码);
$ res2 = $ ws2-> createUser($ username,$ password);
$ res3 = $ ws3-> createUser($ username,$ password);
//返回结果取决于$ res1,$ res2和$ res3值
}
//并且这个调用是从另一个类来完成的,就像这样:
class doThings {
函数run(){
$ ws = new webServiceCalls();
$ ws_res = $ ws-> createUser();
}
}
我以为上述表示可以帮助您了解当前的
设计(可以更好地了解这个问题
谢谢!
Eep!他们应该共享一个公共基类或使用一个接口:
interface WebService {
function createUser($ username,$密码);
函数deleteUser($ username,$ password);
函数createGroup($ groupname);
函数deleteGroup($ groupname);
}
class MyService实现WebService {
函数createUser($ username,$ password){}
函数deleteUser($ username,$ password){}
函数createGroup($ groupname){}
函数deleteGroup($ groupname){}
}
其次,我希望你服务实际上并没有被称为1,2,3,如果是的话,那对我来说,也许你会这样我会使用某种形式的数组。
我不喜欢你的代理类的想法。您是否总是使用所有3种服务,或者这是某种图书馆,您只需要包含所需的服务?您没有提供足够的信息,说明您实际想要完成的任务。
I have 3 different web servers which handle user data (username/passwd/email/etc.). I have 3 different web service calls respectively, so I've created 3 different classes which calls for the same information (getUsername
, setUsername
, getEmail
, setEmail
, etc.). From the main class I instantiate each webservice-call objects and when I have a request for a new username, password I call the createUsername()
method of each class (provisioning the data).
Do you have any suggestions on how to apply a design pattern for this problem? I thought of making a class which will have a method createUsername() {}
and in this I would call each of the webservice-classes and store each result in a predefined array. Does anyone have any suggestion or a better practice?
currently i have:
class webservice1calls {
function createUser($username, $password) {}
function deleteUser($username, $password) {}
function createGroup($groupname) {}
function deleteGroup($groupname) {}
}
class webService2calls {
function createUser($username, $password) {} //different implementation
function deleteUser($username, $password) {} //different implementation
function createGroup($groupname) {} //different implementation
function deleteGroup($groupname) {} //different implementation
}
class webService3calls {
function createUser($username, $password) {} //different implementation
function deleteUser($username, $password) {} //different implementation
function createGroup($groupname) {} //different implementation
function deleteGroup($groupname) {} //different implementation
}
//My "like a proxy" class:
class webServiceCalls {
function createUser($username, $password) {
$ws1 = new webService1calls();
$ws2 = new webService2calls();
$ws3 = new webService3calls();
$res1 = $ws1->createUser($username, $password);
$res2 = $ws2->createUser($username, $password);
$res3 = $ws3->createUser($username, $password);
// return result depending $res1,$res2 and $res3 values
}
//and the call is done from another class somewhat like this:
class doThings {
function run() {
$ws = new webServiceCalls();
$ws_res = $ws->createUser();
}
}
I thought that the above representation would help you understand the current design (and maybe a better understanding of the problem. thanks!
Eep! Firstly, since these are so similar, they should share a common base class or use an interface:
interface WebService {
function createUser($username, $password);
function deleteUser($username, $password);
function createGroup($groupname);
function deleteGroup($groupname);
}
class MyService implements WebService {
function createUser($username, $password) {}
function deleteUser($username, $password) {}
function createGroup($groupname) {}
function deleteGroup($groupname) {}
}
Secondly, I hope your services aren't actually called 1,2,3. If they are, that suggests to me that maybe you should be using some form of an array.
I don't like your idea of a "proxy" class. Are you always using all 3 services, or is this some sort of library where you just include the service you need? You haven't provided enough info about what you're actually trying to accomplish.
这篇关于设计问题:哪个更好的做法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!