内容简介:数据访问对象模式(Data Access Object Pattern)或 DAO 模式用于把低级的数据访问 API 或操作从高级的业务服务中分离出来。以下是数据访问对象模式的参与者。
数据访问对象模式(Data Access Object Pattern)或 DAO 模式用于把低级的数据访问 API 或操作从高级的业务服务中分离出来。以下是数据访问对象模式的参与者。
- 数据访问对象接口(Data Access Object Interface) - 该接口定义了在一个模型对象上要执行的标准操作。
- 数据访问对象实体类(Data Access Object concrete class) - 该类实现了上述的接口。该类负责从数据源获取数据,数据源可以是数据库,也可以是 xml,或者是其他的存储机制。
- 模型对象/数值对象(Model Object/Value Object) - 该对象是简单的 POJO,包含了 get/set 方法来存储通过使用 DAO 类检索到的数据。
package main
import "fmt"
type Student struct {
Name string
RollNo int
}
func (s *Student) GetName() string {
return s.Name
}
func (s *Student) SetName(name string) {
s.Name = name
}
func (s *Student) GetRollNo() int {
return s.RollNo
}
func (s *Student) SetRollNo(no int) {
s.RollNo = no
}
type StudentDAO interface {
GetAllStudents() []*Student
GetStudent(int) *Student
UpdateStudent(*Student)
}
type StudentDAOImpl struct {
Students []*Student
}
func NewStudentDAOImpl() *StudentDAOImpl {
return &StudentDAOImpl{
Students: []*Student{
&Student{Name: "Robert", RollNo: 1},
&Student{Name: "John", RollNo: 2},
},
}
}
func (s *StudentDAOImpl) GetAllStudents() []*Student {
return s.Students
}
func (s *StudentDAOImpl) GetStudent(no int) *Student {
for _, s := range s.Students {
if s.RollNo == no {
return s
}
}
return nil
}
func (s *StudentDAOImpl) UpdateStudent(student *Student) {
for _, s := range s.Students {
if s.RollNo == student.RollNo {
s.SetName(student.Name)
fmt.Println("Student: roll no", student.RollNo, "updated in the database")
}
}
}
func main() {
var dao StudentDAO
dao = NewStudentDAOImpl()
for _, s := range dao.GetAllStudents() {
fmt.Println("Student: ", s.Name, "with roll no", s.RollNo)
}
student := dao.GetStudent(dao.GetAllStudents()[0].RollNo)
student.SetName("Michael")
dao.UpdateStudent(student)
fmt.Println(dao.GetStudent(student.RollNo))
}
以上所述就是小编给大家介绍的《设计模式 - 数据访问对象模式》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 设计模式——订阅模式(观察者模式)
- 设计模式-简单工厂、工厂方法模式、抽象工厂模式
- java23种设计模式-门面模式(外观模式)
- 设计模式-享元设计模式
- Java 设计模式之工厂方法模式与抽象工厂模式
- JAVA设计模式之模板方法模式和建造者模式
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
程序员成长的烦恼
吴亮、周金桥、李春雷、周礼 / 华中科技大学出版社 / 2011-4 / 28.00元
还在犹豫该不该转行学编程?还在编程的道路上摸爬滚打?在追寻梦想的道路上你并不孤单,《程序员成长的烦恼》中的四位“草根”程序员也曾有过类似的困惑。看看油田焊接技术员出身的周金桥是如何成功转行当上程序员的,做过钳工、当过外贸跟单员的李春雷是如何自学编程的,打小在486计算机上学习编程的吴亮是如何一路坚持下来的,工作中屡屡受挫、频繁跳槽的周礼是如何找到出路的。 《程序员成长的烦恼》记录了他们一步一......一起来看看 《程序员成长的烦恼》 这本书的介绍吧!