|
java 私塾随堂笔记——常用设计模式及Java程序设计
第一章 设计模式基础
设计模式:软件编程中,经过验证的,用于解决特定环境下重复出现的问题的解决方案。
作用:加快程序开发,设计精良的结构。
第二章 Java程序设计中最基本的设计模式
一.单例模式
确保在任何给定的时间只创建一个类实例。
第一种形式:
- public class Singleton{
- private Singleton(){}
- private static Singleton instance = new Singleton();
- public static Singleton getInstance(){
- return instance;
- }
- }
复制代码 第二种形式:
- public class Singleton{
- private Singleton(){}
- private static Singleton instance = null;
- public static Singleton getInstance(){
- if(instance == null){
- instance = new Singleton();
- return instance;
- }
- }
- }
复制代码 二.工厂模式
定义一个用于创建对象的接口,让子类决定实例化哪一个类。
只知道接口,不知道实现。
第一种形式:简单工厂
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结尾
实例:
- import java.io.Serializable;
- public class People implements Serializable{
- private String id;
- private String name;
- private String age;
- private String address;
- private String tel;
- private String mail;
- private String msn;
- private String sex;
-
- public String getAddress() {
- return address;
- }
- public void setAddress(String address) {
- this.address = address;
- }
- public String getAge() {
- return age;
- }
- public void setAge(String age) {
- this.age = age;
- }
- public String getId() {
- return id;
- }
- public void setId(String id) {
- this.id = id;
- }
- public String getMail() {
- return mail;
- }
- public void setMail(String mail) {
- this.mail = mail;
- }
- public String getMsn() {
- return msn;
- }
- public void setMsn(String msn) {
- this.msn = msn;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getTel() {
- return tel;
- }
- public void setTel(String tel) {
- this.tel = tel;
- }
-
- public String getSex() {
- return sex;
- }
- public void setSex(String sex) {
- this.sex = sex;
- }
- }
复制代码 四.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 私塾官网有完整笔记下载,也有课堂实录学习视频:www.javass.cn/javapeixunzlxz/zlxz.html
|
|