1.设计模式概述
软件设计模式(Software Design Pattern),又称设计模式,是一套被反复使用、多数人知晓 的、经过分类编目的、代码设计经验的总结。
1.创建型模式
用于描述“怎样创建对象”,它的主要特点是“将对象的创建与使用分离”。提供了单例、原型、工厂方法、抽象工厂、建造者等 5 种创建型模式。
2.结构型模式
用于描述如何将类或对象按某种布局组成更大的结构,提供了代理、适配器、 桥接、装饰、外观、享元、组合等 7 种结构型模式。
3.行为型模式
用于描述类或对象之间怎样相互协作共同完成单个对象无法单独完成的任务,以及怎样分配职责。提供了模板方法、策略、命令、职责链、状态、观察者、中介者、迭代器、访 问者、备忘录、解释器等 11 种行为型模式
2.UML图
统一建模语言(Unified Modeling Language,UML)是用来设计软件的可视化建模语言。它的特 点是简单、统一、图形化、能表达软件设计中的动态与静态信息。
2.1 类图表示法
下图表示的依次为类、属性及方法
+:表示public
-:表示private
#:表示protected
属性的完整表示方式是: 可见性 名称 :类型 [ = 缺省值]
方法的完整表示方式是: 可见性 名称(参数列表) [ : 返回类型]
2.2 类与类之间关系的表示方式
关联关系是对象之间的一种引用关系,用于表示一类对象与另一类对象之间的联系。关联又可以分为单向关联,双向关联,自关联。
2.2.1 关联关系
2.2.1.1 单向关联
上图表示每个顾客都有一个地址。
class Customer {
private Address address;
}
class Address{
}
2.2.1.2 双向关联
public class Person {
private String name;
private Address address;
public Person(String name, Address address) {
this.name = name;
this.address = address;
}
public String getName() {
return name;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
}
public class Address {
private String street;
private String city;
private Person person;
public Address(String street, String city) {
this.street = street;
this.city = city;
}
public String getStreet() {
return street;
}
public String getCity() {
return city;
}
public void setPerson(Person person) {
this.person = person;
}
public Person getPerson() {
return person;
}
}
public class Main {
public static void main(String[] args) {
Address address = new Address("123 Main St", "City");
Person person = new Person("John Doe", address);
// 双向关联的设置
person.setAddress(address);
address.setPerson(person)