找回密码
 快速注册

QQ登录

只需一步,快速开始

查看: 1368|回复: 0

java 私塾随堂笔记——常用设计模式及Java程序设计

[复制链接]
solimh 发表于 2011-3-17 11:33:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?快速注册

×
java 私塾随堂笔记——常用设计模式及Java程序设计

第一章  设计模式基础
   设计模式:软件编程中,经过验证的,用于解决特定环境下重复出现的问题的解决方案。
   作用:加快程序开发,设计精良的结构。

第二章 Java程序设计中最基本的设计模式
一.单例模式
    确保在任何给定的时间只创建一个类实例。
    第一种形式:

  1. public class Singleton{
  2.     ∵ Singleton(){}
  3.     ∵ static Singleton instance = new Singleton();
  4.     public static Singleton getInstance(){
  5.     return instance;
  6.     }
  7. }
复制代码
第二种形式:

  1. public class Singleton{
  2.     ∵ Singleton(){}
  3.     ∵ static Singleton instance = null;
  4.     public static Singleton getInstance(){
  5.         if(instance == null){
  6.            instance = new Singleton();
  7.            return instance;
  8.         }
  9.     }
  10. }
复制代码
二.工厂模式   
    定义一个用于创建对象的接口,让子类决定实例化哪一个类。
    只知道接口,不知道实现。
    第一种形式:简单工厂

public clas Factory{
  public static Api createApi(int type){
    if(type == 1){
       return new Impl1();}
    else if (type ==2){
       return new Impl2();}
  }
}

三.值对象模式
    本质:封装数据
    规则:1.写一个类实现可序列化
          2.私有化所有属性
          3.为每个属性提供对应的getter和setter (方法返回类型为boolean的get变is)
          4.推荐覆盖实现toString(),equals(),hashCode()
    类名起名原则:以大写VO结尾
                  或以ValueObject结尾
                  或Model结尾
    实例:

  1. import java.io.Serializable;
  2. public class People implements Serializable{
  3.     ∵ String id;
  4.     ∵ String name;
  5.     ∵ String age;
  6.     ∵ String address;
  7.     ∵ String tel;
  8.     ∵ String mail;
  9.     ∵ String msn;
  10.     ∵ String sex;
  11.    
  12.     public String getAddress() {
  13.         return address;
  14.     }
  15.     public void setAddress(String address) {
  16.         this.address = address;
  17.     }
  18.     public String getAge() {
  19.         return age;
  20.     }
  21.     public void setAge(String age) {
  22.         this.age = age;
  23.     }
  24.     public String getId() {
  25.         return id;
  26.     }
  27.     public void setId(String id) {
  28.         this.id = id;
  29.     }
  30.     public String getMail() {
  31.         return mail;
  32.     }
  33.     public void setMail(String mail) {
  34.         this.mail = mail;
  35.     }
  36.     public String getMsn() {
  37.         return msn;
  38.     }
  39.     public void setMsn(String msn) {
  40.         this.msn = msn;
  41.     }
  42.     public String getName() {
  43.         return name;
  44.     }
  45.     public void setName(String name) {
  46.         this.name = name;
  47.     }
  48.     public String getTel() {
  49.         return tel;
  50.     }
  51.     public void setTel(String tel) {
  52.         this.tel = tel;
  53.     }
  54.    
  55.     public String getSex() {
  56.         return sex;
  57.     }
  58.     public void setSex(String sex) {
  59.         this.sex = sex;
  60.     }
  61. }
复制代码
四.DAO模式
   |-business
      |-ebi
      |-ebo
      |-factory
   |-dao
      |-dao
      |-factory
      |-impl
   |-vo

*什么是开放-封闭法则(OCP)
    可扩展但是不可以更改已有的模块
    对扩展是开放的,对修改是封闭

*什么是替换法则(LSP)
    在一个方法中可以使用基类引用的地方,都可以使用其子类去替换它们

*如何综合使用我们学过的设计模式来构建合理的应用程序结构
    是采用接口进行隔离,然后同时暴露值对象和工厂类,如果是需要数据存储的功能,又    会通过DAO 模式去与数据存储层交互。

*构建常用的合理的Java应用包结构

    |-use
       |-business
          |-ebi
          |-ebo
          |-factory
       |-dao
          |-dao
          |-factory
          |-impl
       |-vo
       |-web
          |-action
          |-vo

java 私塾官网有完整笔记下载,也有课堂实录学习视频:w ww.javass.cn/javapeixunzlxz/zlxz.html
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

快速回复 返回顶部 返回列表