我写的设计模式的文章总结(5)

2019-03-22 17:12

System.out.println(it.currentItem().toString()); it.next(); } }

public static void main(String args[]) {

Client client=new Client(); client.operation(); } }

10,bridge模式理解

public abstract class Airplane {

public sbstract void fly();

protected AirplaneMaker airplaneMaker; //桥在哪??桥在这里!! }

22

设计模式

public class PassengerPlane extends Airplane {

public void fly() {

System.out.println(\ } }

public CargoPlane Extends Airplane {

public void fly() {

System.out.println(\ } }

public abstract class AirplaneMaker {

public abstract void produce(); }

public class Airbus extends AirplaneMaker{ public void produce() {

System.out.println(\} }

public class Boeing extends AirplaneMaker{ public void produce() {

System.out.println(\} }

public class MD extends AirplaneMaker{ public void produce() {

System.out.println(\ produce\} }

public class test {

23

设计模式

public static void main(String args[]) {

PassengerPlane plane=new PassengerPlane(); plane.airplaneMaker=new MD(); plane.airplaneMaker.produce();

plane.airplaneMaker=new Airbus();

//之所以能变化,是因为桥这里可以重新选择制造商 plane.airplaneMaker.produce(); } }

使用此模式的前提是客户端并不深究得到的产品是抽象的n维(本例子里是2维)和行为的m维(本例子里是2维)这n*m中的具体那一种,行为那边的变化也只是m个变化,实际上一个具体一个行为只有一个确定的形式,之所以能够变化是抽象它有m个具体行为可以选择!

换句话说,这个桥他是单向的,只能从抽象这一头度到行为那一头!

public CargoPlane Extends Airplane {

public void fly() {

System.out.println(\ //

//这里可以进行一些委派 , airplaneMaker.produce(); //但是反过来不行 } }

11,责任链模式

解释:在一个公司的管理系统中,可以自己申请加薪。

比如你对你的工资不满意,要求申请加薪,但是本部门,行政部,和总裁办都可以给员工加薪,但是加薪的幅度有大有小,你可以向你本部门申请加薪,比如我在技术部

技术部最多给员工加500元,如果小于500,本部门就可以自己执行。如果员工申请的数量大于1000,就要由行政部执行! 如过大于2000,就要由总裁办执行!!

package cor;

public abstract class Dept { protected Dept successor;

public abstract void addSalary(int money); public Dept getSuccessor(){

24

设计模式

return this.successor; }

public void SetSuccessor(Dept dept){ this.successor=dept; } }

/************************************************/ package cor;

public class TechDept extends Dept { //protected Dept successor;

public void addSalary(int money) { if(money > 500){

System.out.println(\转发admin:salary\ this.getSuccessor().addSalary(2500); }else{

addSalary(money); } } }

/************************************************/ package cor;

public class AdminDept extends Dept { //protected Dept successor;

public void addSalary(int money) { if(money > 1000){

System.out.println(\转发pres\ getSuccessor().addSalary(2500); }else{

addSalary(money); } } }

/************************************************/

package cor;

25

设计模式

public class President extends Dept { //protected Dept successor;

public void addSalary(int money) { if(money> 2000){

System.out.println(\处理\ // addSalary();

// System.out.println(\加完后的薪水\ } }

/************************************************/

package cor;

public class Main {

public Main() { }

public static void main(String[] args) { Dept pre = new President();

Dept admin = new AdminDept(); Dept dept = new TechDept(); dept.SetSuccessor(admin); admin.SetSuccessor(pre); dept.addSalary(2500); } }

12,Observer模式理解

import java.util.*;

public abstract class Subject {

private Vector observers_vector=new Vector(); public void add_ob(Observer observer) {

observers_vector.add(observer); }

public void remove_from(Observer observer) {

observers_vector.remove(observer); }

public void notify_all()

26

设计模式


我写的设计模式的文章总结(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:股权购买协议 中英文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: