Паттерн: Команда (Command)
Исходник: ImageGallery.java, язык: java [code #488, hits: 7278]
автор: this [добавлен: 04.10.2007]
  1. package command;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.ResultSet;
  6. import java.sql.SQLException;
  7. import java.util.ArrayList;
  8. import java.util.List;
  9.  
  10. public class ImageGallery implements Module {
  11. private int mode;
  12. private Connection conn;
  13.  
  14. public ImageGallery() {
  15. super();
  16. try {
  17. InitConnection();
  18. } catch (Exception e) {
  19. System.out.println("Проблемы с подключением к базе!");
  20. }
  21. }
  22.  
  23. protected void InitConnection()
  24. // Подключаемся к базе данных
  25. Class.forName("oracle.jdbc.driver.OracleDriver");
  26. conn = DriverManager.
  27. getConnection("jdbc:oracle:thin:@localhost:1521", "user", "pass");
  28. }
  29.  
  30. public List<String> GetMenu() {
  31. List<String> res = new ArrayList<String>(2);
  32. res.add("Показать список альбомов");
  33. res.add("Показать все картинки");
  34. return res;
  35. }
  36.  
  37. public void Run() {
  38. try {
  39. switch (mode) {
  40. case 0:
  41. ShowAlbums();
  42. break;
  43. case 1:
  44. ShowPics();
  45. break;
  46. // ...
  47. }
  48.  
  49. } catch (SQLException e) {
  50. System.out.println("ошибочка...!");
  51. }
  52. }
  53.  
  54. protected void ShowPics() throws SQLException {
  55. ResultSet rs = conn.createStatement().executeQuery(
  56. "SELECT name, path FROM images");
  57. while (rs.next()) {
  58. // выводим картинку...
  59. }
  60. }
  61.  
  62. protected void ShowAlbums() throws SQLException {
  63. ResultSet rs = conn.createStatement().executeQuery(
  64. "SELECT name, path FROM albums");
  65. while (rs.next()) {
  66. // выводим альбом...
  67. }
  68. }
  69.  
  70. public int getMode() {
  71. return mode;
  72. }
  73.  
  74. public void setMode(int mode) {
  75. this.mode = mode;
  76. }
  77.  
  78. }
Сущность ConcreteCommand

Реализация галереи в виде отдельного модуля.
Тестировалось на: java 1.5.0_04

+добавить реализацию