设计模式

一 单例模式
1.
public class CPUQueueA {
private static CPUQueueA q=null;

private CPUQueueA(){

}

public synchronized static CPUQueueA getQueue(){
if(q==null){
q=new CPUQueueA();
}
return q;
}


}


2.
public class CPUQueue {
private static final CPUQueue q=new CPUQueue();

private CPUQueue(){

}

public static CPUQueue getQueue(){
return q;
}
}
二 观察者模式
账户类
import java.util.HashSet;

public class Account {
private String name;
private long id;
private double money;
private HashSet<Observer> allObservers;

public Account(String name, long id, double money) {
super();
this.name = name;
this.id = id;
this.money = money;
allObservers=new HashSet<Observer>();
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;

}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}

public void addObserver(Observer ob){
allObservers.add(ob);
}

public void operation(AccountOperation op){
for(Observer ob:allObservers){
ob.update(op);
}
}

}
账户操作类
public class AccountOperation {
private String type;
private double money;
private Account acc;
public AccountOperation(String type, double money, Account acc) {
super();
this.type = type;
this.money = money;
this.acc = acc;
}
public Account getAcc() {
return acc;
}
public void setAcc(Account acc) {
this.acc = acc;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
观察接口
public interface Observer {
public void update(AccountOperation op);

}
实现类1
public class MailObserver implements Observer{

public void update(AccountOperation op) {
System.out.println("向用户发送邮件提醒!");
}

}

实现类2
public class ShortMessageObserver implements Observer{

public void update(AccountOperation op) {
System.out.println("向用户发送短信提醒:");
}

}
应用类
public class Application {
public static void main(String[] args) {
Account a=new Account("test",1234567890,10000.00);
a.addObserver(new MailObserver());
a.addObserver(new ShortMessageObserver());
a.setMoney(5000.00);
AccountOperation op = new AccountOperation ("1",200.00,a);
a.operation(op);
}

}

三 工厂模式
public abstract class Car {
public abstract void run();
}
public class BMW extends Car{
public void run(){
System.out.println("BMW Running!");
}
}
public class Benz extends Car{
public Benz(String model){
}

public void run(){
System.out.println("Benz Running!");
}
}
public class CarFactory {
public static Car createCar(int type){
switch(type){
case 0:return new Benz("S600");
case 1: return new BMW();
}
return null;
}
}
public class Application {
public static void main(String[] args) {
Car c1=CarFactory.createCar(0);
Car c2=CarFactory.createCar(1);
c1.run();
c2.run();
}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值