如何隔離物件之間的相依性
public interface IAccountDao { string GetPassword(string id); } public interface IHash { string GetHashResult(string password); } public class AccountDao : IAccountDao { public string GetPassword(string id) { throw new NotImplementedException(); } } public class Hash : IHash { public string GetHashResult(string password) { throw new NotImplementedException(); } } public class Validation { private IAccountDao _accountDao; private IHash _hash; public Validation(IAccountDao dao, IHash hash) { this._accountDao = dao; this._hash = hash; } public bool CheckAuthentication(string id, string password) { // 取得資料中,id對應的密碼 var passwordByDao = this._accountDao.GetPassword(id); // 針對傳入的password,進行hash運算 var hashResult = this._hash.GetHashResult(password); // 比對hash後的密碼,與資料中的密碼是否吻合 return passwordByDao == hashResult; } }
作者:backslash112 (美国CS研究生在读/机器人工程师)
出处:http://sirkevin.cnblogs.com
GitHub:https://github.com/backslash112
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
出处:http://sirkevin.cnblogs.com
GitHub:https://github.com/backslash112
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted on 2013-12-17 09:27 backslash112 阅读(258) 评论(0) 编辑 收藏 举报