1
1
通过从数据库查询创建对象,可以定义对象和关系数据库之间的映射。这正是ORM软件所做的。 通过这样做并确保对象从不直接访问数据库,而是使用数据库访问函数/对象,可以通过两种方式保护代码不受更改:
我想从这个意义上说,您获得了一些数据库不可知性,但是您最好使用一个现成提供不可知性的数据库库。 在我看来,优势在于您使用对象并获得面向对象语言提供的所有优势。然后,您可以在更高的级别(根据您定义的对象)读取域逻辑,而无需筛选数据库查询。你自己写ORM可能很难,但是有很多工具可以帮助你。 这是我通常采用的方法,但我不做任何PHP开发,所以我不能说它在该语言中的应用有多好。 |
2
0
您所描述的是一个数据访问层的实现——听起来不像 Factory Method pattern ,也不 Abstract Factory pattern . 是的,ORM在对象和关系数据库之间架起桥梁,可以作为数据访问层。请记住,您使用的任何ORM都有一定的优点/缺点/局限性。根据您的经验和要求,编写自己的数据访问层有时是一个好主意;不要觉得必须使用第三方ORM。 是的,一个好的数据访问层使您可以轻松地交换存储机制(不同的数据库、XML、平面文件等),而无需更改业务逻辑、UI或其他代码。 不管使用的是松散类型或强类型语言,如果您使用的是OO语言,那么使用数据对象(由ORM或内部数据访问层提供)编写代码会容易得多。我确信可以编写一个没有数据访问层的系统,在这个系统中,业务层直接与数据库一起工作。但实施和维护可能更具挑战性。 |
Vedant · 如何解决python啦啦队长问题?[已关闭] 2 年前 |
cobby · 在战略模式中使用工厂模式? 2 年前 |
Nobody · Java中带while循环的三角形模式 2 年前 |
Eduard Stefanescu · 如何在层之间传输异常? 6 年前 |
D. Schreier Talha Noyon · 对于目录中的每个类 6 年前 |
Tanvi Jaywant · 如何重载类 6 年前 |