问个OOP问题 有个用户类和管理员类,按照OOP的思想,添,删,改,查用户到数据库中的方法是放在用户类还是管理员类中 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 应该专门独立出来一个类把,因为用户和管理员都会用到curd操作,然后用户和管理员类持有对方的引用!! Userpackage com.tsinghuait.test;public class User { /** * User类是不是只保存User的一些属性、及set、get方法啦? * */ private int id; private String name; private int age; private String email; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } }UserToolpackage com.tsinghuait.test;public class UserTool { public void add(User user) { } public void del(User user) { } public void select(User user) { } public void update(User user) { }} 我随便写了一下,各位批评!用户类:public class User { private long id; private DBQuerier querier; public User(long i) { id = i; querier = new DBQuerier(this); } public long getId() { return id; } public void doSomething() { querier.select("someTable"); querier.delete("someTable", "someConditions"); }}数据库查询类:public class DBQuerier { private boolean connected; private User user; public DBQuerier(User u) { user = u; } public boolean connect() { // connect to the db connected = true; return connected; } public void select(Object... args) { try { checkPrivilege(PrivilegeSystem.Privilege.SELECT); ensureConnection(); // do selecting... System.out.println("user #" + user.getId() + " is selcting..."); } finally { // disconnect... } } public void insert(Object... args) { try { checkPrivilege(PrivilegeSystem.Privilege.INSERT); ensureConnection(); // do inserting... System.out.println("user #" + user.getId() + " is inserting..."); } finally { // disconnect... } } public void update(Object... args) { try { checkPrivilege(PrivilegeSystem.Privilege.UPDATE); ensureConnection(); // do updating... System.out.println("user #" + user.getId() + " is updating..."); } finally { // disconnect... } } public void delete(Object... args) { try { checkPrivilege(PrivilegeSystem.Privilege.DELETE); ensureConnection(); // do deleting... System.out.println("user #" + user.getId() + " is deleting..."); } finally { // disconnect... } } private void checkPrivilege(PrivilegeSystem.Privilege p) { if (!PrivilegeSystem.hasPrivilege(user.getId(), p)) throw new NotEnoughPrivilegeException(); } private void ensureConnection() { if (!connected) connect(); }}权限系统类:public class PrivilegeSystem { public static enum Privilege { SELECT, INSERT, UPDATE, DELETE }; public static boolean hasPrivilege(long userId, Privilege privilege) { // verifying the privilege for the user ... // only for demonstration if (userId == 1) return true; // administrator has all privileges. else return (privilege == Privilege.SELECT); // other users have only the privilege for selection. }}权限不够异常:public class NotEnoughPrivilegeException extends RuntimeException {}测试类:public class Demo { public static void main(String[] args) { User admin = new User(1); User user1 = new User(2); admin.doSomething(); user1.doSomething(); }} 几道java的改错题 救急 救急 有两问题,各位路过的大神别错过,帮帮忙 请问问题出在那里? 最基本的问题??? 请问,怎么采录麦克风的声音,还有linein的声音 关于数组的一个问题 急:中文输出的问题 swing问题,如果实现点击一个按钮停止另一个按钮执行得任务? javaSL_275,SL_285免费培训课程(深圳) 谁都可以回答的问题(只要你会java)!!!!!!! 如何把JDBC驱动打包进可运行的JAR文件 求助
/**
* User类是不是只保存User的一些属性、及set、get方法啦?
* */
private int id;
private String name;
private int age;
private String email; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} public String getEmail() {
return email;
} public void setEmail(String email) {
this.email = email;
}
}UserToolpackage com.tsinghuait.test;public class UserTool {
public void add(User user) { } public void del(User user) { } public void select(User user) { } public void update(User user) { }}
public class User {
private long id;
private DBQuerier querier;
public User(long i) {
id = i;
querier = new DBQuerier(this);
}
public long getId() {
return id;
}
public void doSomething() {
querier.select("someTable");
querier.delete("someTable", "someConditions");
}}
数据库查询类:public class DBQuerier {
private boolean connected;
private User user;
public DBQuerier(User u) {
user = u;
}
public boolean connect() {
// connect to the db
connected = true;
return connected;
}
public void select(Object... args) {
try {
checkPrivilege(PrivilegeSystem.Privilege.SELECT);
ensureConnection();
// do selecting...
System.out.println("user #" + user.getId() + " is selcting...");
} finally {
// disconnect...
}
} public void insert(Object... args) {
try {
checkPrivilege(PrivilegeSystem.Privilege.INSERT);
ensureConnection();
// do inserting...
System.out.println("user #" + user.getId() + " is inserting...");
} finally {
// disconnect...
}
} public void update(Object... args) {
try {
checkPrivilege(PrivilegeSystem.Privilege.UPDATE);
ensureConnection();
// do updating...
System.out.println("user #" + user.getId() + " is updating...");
} finally {
// disconnect...
}
} public void delete(Object... args) {
try {
checkPrivilege(PrivilegeSystem.Privilege.DELETE);
ensureConnection();
// do deleting...
System.out.println("user #" + user.getId() + " is deleting...");
} finally {
// disconnect...
}
}
private void checkPrivilege(PrivilegeSystem.Privilege p) {
if (!PrivilegeSystem.hasPrivilege(user.getId(), p))
throw new NotEnoughPrivilegeException();
} private void ensureConnection() {
if (!connected)
connect();
}}
权限系统类:public class PrivilegeSystem {
public static enum Privilege { SELECT, INSERT, UPDATE, DELETE };
public static boolean hasPrivilege(long userId, Privilege privilege) {
// verifying the privilege for the user ...
// only for demonstration
if (userId == 1)
return true; // administrator has all privileges.
else
return (privilege == Privilege.SELECT); // other users have only the privilege for selection.
}}
权限不够异常:public class NotEnoughPrivilegeException extends RuntimeException {}
测试类:public class Demo {
public static void main(String[] args) {
User admin = new User(1);
User user1 = new User(2);
admin.doSomething();
user1.doSomething();
}}