Java在实用程序类(具有静态方法的类)和Service类(具有提供"服务"的公共方法的类)之间的区别是什么.例如,可以认为加密对象(提供加密,解密,散列或获取salt值的方法)是服务提供者,但许多人将此功能组合到具有静态方法的Utility类中,如CryptoUtil.encrypt(.. ).我试图弄清楚哪种方式更好地"设计".思考?
我有几个不同的类来自外部源(不可修改),代表相同的概念.例如Address
.我有com.namespace1.Address
(有田houseNum
,street
,city
), com.namespace2.Address
(与领域h
,s
,c
),(namespace3.com.CoolAddress
与领域house_num
,street
,city
).
问题是我使用的某些Web服务需要某些Address对象类型,所以我需要创建一个com.namespace1.Address
给定的a namespace3.com.CoolAddress
.这些字段很容易映射,但我正在寻找一个如何做到这一点的模式.
从我的角度来看,实例对象AddressConverter
没有意义,因为没有状态(只有行为),当类只有行为时,它归结为实用程序类中的静态方法.从长远来看,无论何时我需要将新对象映射到另一个,我都有一个地方可以添加/修改/删除方法.如何完成它可能会改变,但我知道代码所在的位置(在一次位置)并且可以在需要时更改映射.
思考?
嘿伙计们,这似乎经常被讨论,但我想围绕用RESTful服务进行身份验证做一个简单,淡化的问题.方案如下:
现在的问题是如何根据用户系统中的数据验证在客户端应用程序中输入其凭据(用户名/密码)的用户,以确保其安全性和高性能?为了这个问题,假设客户端应用程序是某种Intranet的内部应用程序,但应用程序不会驻留在同一台机器上,只能通过该服务进行通信.
我理解让应用程序"超媒体驱动"的想法,但我们应该能够提供过滤/搜索服务.例如,考虑以下资源和API:
基于以上所述,我的想法是在用户列表中使用客户端应用程序GET,按用户名进行过滤.该服务将哈希密码和salt返回给客户端,客户端将执行身份验证.
思考?
更新:增加了一个问题(问题#4).
大家好,
我正在构建自己的自定义电子邮件实用程序.现在,为了遵守单一责任原则,我想拥有以下类:MailerSender,MailProvider和EmailObject.MailSender更像是一个代表,请在下面查看:
public class MailSender {
private IMailProvider mailProvider;
public void setMailProvider (IMailProvider provider) {
this.mailProvider = provider;
}
// option to set it up during construction
public MailSender (IMailProvider provider) {
this.mailProvider = provider;
}
public void sendEmail(EmailObject obj) {
if(mailProvider == null)
throw new RuntimeException("Need a mail provider to send email.");
try {
mailProvider.send(obj);
} catch (Exception e) {
// do something here
}
}
}
Run Code Online (Sandbox Code Playgroud)
MailSender需要一个IMailProvider电子邮件提供商来完成发送电子邮件的工作.在下面找到它:
public interface IMailProvider {
public void sendEmail(EmailObject obj);
} …
Run Code Online (Sandbox Code Playgroud) java ×3
api ×1
dictionary ×1
object ×1
oop ×1
rest ×1
service ×1
static ×1
utility ×1
web-services ×1