Created
May 18, 2014 08:19
-
-
Save solidnerd/1ecfcb7d408a755f66cf to your computer and use it in GitHub Desktop.
Example for an implentation of the DAO Pattern from http://java-latte.blogspot.de/2014/02/the-data-access-object-dao-design.html
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* Transfer Object as per diagram | |
*/ | |
public class CircleTransfer{ | |
private int x; | |
private int y; | |
private int radius; | |
void setX(int x){ | |
this.x=x; | |
} | |
void setY(int y){ | |
this.y=y; | |
} | |
int getX(){ | |
return x; | |
} | |
int getY(){ | |
return y; | |
} | |
void setRadius(int radius){ | |
this.radius=radius; | |
} | |
int getRadius(){ | |
return radius; | |
} | |
} | |
/* | |
* DAO as per Diagram | |
*/ | |
interface CircleDAO{ | |
public void insertCircle(CircleTransfer circle); | |
public CircleTransfer findCircle(int x,int y); | |
public void deleteCircle(int x,int y); | |
} | |
/** | |
* DataSource as per Diagram | |
* Oracle Implementation | |
*/ | |
public class RDMSDAO implements CircleDAO{ | |
@Override | |
public void insertCircle(CircleTransfer circle) { | |
// insertCircle implementation as per Oracle database | |
} | |
@Override | |
public CircleTransfer findCircle(int x, int y) { | |
// findCircle implementation | |
return null; | |
} | |
@Override | |
public void deleteCircle(int x, int y) { | |
// deleteCircle implemenation | |
} | |
} | |
/** | |
* DataSource as per Diagram | |
* MySql Implementation | |
*/ | |
public class MYSQLDAO implements CircleDAO{ | |
@Override | |
public void insertCircle(CircleTransfer circle) { | |
// insertCircle implementation as per MYSQL database | |
} | |
@Override | |
public CircleTransfer findCircle(int x, int y) { | |
// findCircle implementation | |
return null; | |
} | |
@Override | |
public void deleteCircle(int x, int y) { | |
// deleteCircle implemenation | |
} | |
} | |
/* | |
* Factory | |
*/ | |
public class DAOFactory{ | |
public static CircleDAO getCircleDao(String sourceType){ | |
switch(sourceType){ | |
case "Oracle": | |
return new RDMSDAO(); | |
case "mysql": | |
return new MYSQLDAO(); | |
} | |
return null; | |
} | |
} | |
/* | |
* Core Business logic | |
*/ | |
public class Circle{ | |
private int x,y,r; | |
Circle(int x,int y, int r){ | |
this.x=x; | |
this.y=y; | |
this.r=r; | |
} | |
public CircleTransfer getCircleTransferObject(){ | |
CircleTransfer c = new CircleTransfer(); | |
c.setRadius(r); | |
c.setX(x); | |
c.setY(y); | |
return c; | |
} | |
} | |
/* | |
* Client | |
*/ | |
public class DaoPatternDemo { | |
public static void main(String[] javalatte) { | |
Circle c = new Circle(2,2,4); | |
CircleTransfer ct = c.getCircleTransferObject(); | |
CircleDAO cDao = DAOFactory.getCircleDao("oracle"); | |
cDao.insertCircle(ct); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment