我参与了一个实现三层架构的项目,其设计如下:
据我所知,三层方法可以帮助提高安全性,因为如果表示层受到威胁,仍然无法访问数据。虽然这是真的,但似乎这种方法过于复杂了,特别是因为我被迫在前两层为同一个对象编写两个模型。
所以我的问题:这是一个三层架构的糟糕实现吗?如果是这样,怎么可以改进?简单地拥有一个可以访问数据库的MVC实现有什么缺点(如果有的话)?您对Web应用程序使用了哪些方法?
感谢您的帮助!
答案 0 :(得分:3)
在我看来,你的3层与View,Controller Model相同。如果你的php主要是调用你的#2层,那么我认为自己不需要是MVC,除非你有一个非常复杂的表示层,它本身应该组织成MVC,例如你有复杂的导航或用户认证逻辑。
答案 1 :(得分:0)
编程中没有必要。但是有很多实践,这些实践多年来已经成为可以追随到更好结果的东西。 N层分离只是其中一种做法。
http://en.wikipedia.org/wiki/Multitier_architecture
您的描述遵循Wiki中的描述,因此 - 它是实现3层应用程序的合适方式。
但请记住,你不应该做任何事情 - 只要按照你感觉舒服的方式。在将来,您将拥有自己的一套专门为您服务的实践。
答案 2 :(得分:0)
我认为您的复杂性源于您使用的PHP和.NET不直接兼容。如果您删除了其中一个(仅使用PHP或仅使用.NET),这将简化操作。否则,我认为你正在采用一种好的方法。
答案 3 :(得分:0)
该方法的价值不仅仅在于安全性,还有助于维护。
我不确定我是否理解这个问题:“特别是因为我不得不在前两层为同一个对象编写两个模型。”这似乎是因为您正在为UI和后端使用两种不同的编程语言。我猜C#“数据访问层”包含一个完整的对象模型,然后你必须在前端复制。
问题似乎是你有两个相互镜像的中间层,因为你使用的是两种语言,而不是你使用的是n层架构