java设计模式与分类

  • H3_468550
    了解作者
  • 1MB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-05-01 09:49
    上传日期
主要是讲写设计模式的种类,以及它们的用法等。可以了解一下。
DesignPattern.rar
  • DesignPattern
  • images
  • factoryMethod-1.jpg
    40.6KB
  • iterator-1.jpg
    17.3KB
  • workerThread-3.jpg
    20.7KB
  • bridge-4.jpg
    18.9KB
  • builder-1.jpg
    37.4KB
  • proxy-1.jpg
    13.6KB
  • factoryMethod-2.jpg
    27.9KB
  • protoType-1.jpg
    27.5KB
  • adapter-3.jpg
    10.5KB
  • singleton-2.jpg
    10.3KB
  • facade-1.jpg
    14.2KB
  • proxy-3.jpg
    13.3KB
  • proxy-2.jpg
    13.3KB
  • iterator-2.jpg
    17.7KB
  • defaultAdapter-2.jpg
    5.5KB
  • decorator-3.jpg
    20.4KB
  • producerConsumer.jpg
    39.1KB
  • workerThread-2.jpg
    15.8KB
  • mediator-3.jpg
    31.1KB
  • mediator-2.jpg
    11.5KB
  • decorator-2.jpg
    7.7KB
  • guardedSuspension.jpg
    27.4KB
  • chainOfResponsibility-2.jpg
    11.9KB
  • memento-1.jpg
    15.8KB
  • adapter-2.jpg
    8.2KB
  • interpreter-1.jpg
    13.8KB
  • strategy-1.jpg
    12.8KB
  • adapter-1.jpg
    8.2KB
  • chainOfResponsibility-1.jpg
    13.2KB
  • singleton-1.jpg
    10KB
  • observer-1.jpg
    24.7KB
  • command-2.jpg
    16.6KB
  • composite-3.jpg
    8.9KB
  • mediator-1.jpg
    25.8KB
  • protoType-3.jpg
    24.5KB
  • bridge-1.jpg
    12.1KB
  • strategy-2.jpg
    19.4KB
  • mediator-4.jpg
    14.4KB
  • composite-2.jpg
    20.9KB
  • simpleFactory-2.jpg.bak
    17.5KB
  • command-1.jpg
    17.6KB
  • state-2.jpg
    11.9KB
  • workerThread-1.jpg
    12.4KB
  • adapter-4.jpg
    11KB
  • simpleFactory-2.jpg
    17.8KB
  • protoType-2.jpg
    16.3KB
  • flyweight-1.jpg
    23.5KB
  • actor-1.jpg
    2KB
  • readWriteLock-1.jpg
    15KB
  • visitor-1.jpg
    28KB
  • state-1.jpg
    15.8KB
  • bridge-2.jpg
    23.5KB
  • future-1.jpg
    30.4KB
  • abstractFactory-1.jpg
    35.5KB
  • observer-2.jpg
    14KB
  • facade-2.jpg
    23.9KB
  • composite-1.jpg
    28.1KB
  • builder-2.jpg
    18.1KB
  • facade-3.jpg
    21.9KB
  • decorator-1.jpg
    16.7KB
  • builder-3.jpg
    22.5KB
  • readWriteLock-2.jpg
    20.7KB
  • defaultAdapter-1.jpg
    8.2KB
  • bridge-3.jpg
    33.6KB
  • templateMethod-1.jpg
    15.3KB
  • abstractFactory-2.jpg
    27.3KB
  • simpleFactory-1.jpg
    17.7KB
  • css
  • print.css
    3KB
  • stdlayout.css
    2.2KB
  • ReadWriteLock.htm
    13.5KB
  • StrategyPattern.htm
    8.6KB
  • FuturePattern.htm
    5.2KB
  • AdapterPattern2.htm
    8.9KB
  • ObserverPattern.htm
    4.5KB
  • DecoratorPattern.htm
    13.7KB
  • StatePattern.htm
    9.3KB
  • FlyweightPattern.htm
    6.7KB
  • ChainofResponsibility.htm
    8.9KB
  • WorkerThread.htm
    4.6KB
  • CompositePattern.htm
    2.8KB
  • ProducerConsumer.htm
    6KB
  • template.html
    518B
  • AdapterPattern.htm
    5.3KB
  • IteratorPattern.htm
    5.5KB
  • MediatorPattern.htm
    3.9KB
  • GoF.htm
    1KB
  • ThreadPerMessage.htm
    6.2KB
  • DefaultAdapter.htm
    10.4KB
  • ProxyPattern.htm
    3.2KB
  • AbstractFactory.htm
    8.9KB
  • InterpreterPattern.htm
    27.4KB
  • GuardedSuspension.htm
    3.1KB
  • BridgePattern.htm
    3.1KB
  • SimpleFactory.htm
    4.7KB
  • TemplateMethod.htm
    12.5KB
  • ProxyPattern2.htm
    8.1KB
  • FactoryMethod.htm
    5.1KB
内容介绍
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head> <link rel="stylesheet" href="css/stdlayout.css" type="text/css"> <link rel="stylesheet" href="css/print.css" type="text/css"> <meta content="text/html; charset=Big5" http-equiv="content-type"> <title>Adapter 模式 - Object Adapter</title></head><body><h3><a href="http://caterpillar.onlyfun.net/Gossip/index.html" rel='nofollow' onclick='return false;'>FromGossip@caterpillar</a></h3><h1><a href="DesignPattern.htm" rel='nofollow' onclick='return false;'>Design Pattern:&nbsp;Adapter 模式 - Object Adapter</a></h1>您的電腦是個舊電腦,新的滑鼠都在使用USB接口了,而您的電腦上並沒有USB,而只有一個PS2接口,這時您可以使用一個USB轉PS2的接頭作為轉換,這樣您的電腦就可以使用新滑鼠了(當然您也可以使用USB擴充卡,意思是相同的)。<br><br>類似的概念,有時候您想在原來的程式中加入一個外部元件,例如一個類別,但是這個類別與您目前所設計的程式在介面上並不一致,為了讓這個外部類與原程式的介面一致,您必須使用一個類別作為中介來配接它們,這時您可以採用Adapter模式。<br><br>舉個例子來說,在Java 1.0中有個Enumeration,您在這個版本發行之後,使用它來設計了一個MessageApplication,例如: <br><ul> <li>MessageApplication.java</li></ul><span style="font-family: Courier New,Courier,monospace;"></span><pre>import java.util.*;<br><br>public class MessageApplication {<br> public void showAllMessage(Enumeration enum) {<br> Object msg;<br> while(enum.hasMoreElements()) { <br> msg = enum.nextElement();<br> System.out.println(msg);<br> }<br> } <br>}</pre><br>您的客戶端程式是這麼使用MessageApplication的:<br><ul> <li> MessageClient.java </li></ul><pre>import java.util.*;<br><br>public class MessageClient {<br> private MessageApplication msgApp;<br><br> public void run() {<br> Vector vector = new Vector();<br> for(int i = 0; i &lt; 10; i++)<br> vector.addElement("物件 " + i);<br> <br> msgApp = new MessageApplication();<br> msgApp.showAllMessage(vector.elements());<br> }<br> <br> public static void main(String[] args) {<br> MessageClient msgClient = new MessageClient();<br> msgClient.run();<br> }<br>} <br></pre><br>現在Java1.2中新增了Iterator,您想要使用它的功能,但基本上您不想更動原來程式中已設計好的MessageApplication類別,這時候您可以使用Adapter模式,將Iterator的介面轉換為Enumeration相容,例如:<br><ul> <li> IteratorAdapter.java </li></ul><pre>import java.util.*;<br><br>public class IteratorAdapter implements Enumeration {<br> private Iterator iterator;<br><br> IteratorAdapter(Iterator iterator) {<br> this.iterator = iterator; <br> }<br><br> // 轉接介面<br> public boolean hasMoreElements() {<br> return iterator.hasNext();<br> }<br><br> public Object nextElement() <br> throws NoSuchElementException {<br> return iterator.next();<br> } <br>} <br></pre><br>您可以在客戶端程式中照樣使用MessageApplication類別,而不用作任何的變動:<br><ul> <li> MessageClient.java </li></ul><pre>import java.util.*;<br><br>public class MessageClient {<br> // We could still use MessageApplication<br> private Enumeration iteratorAdapter;<br> <br> public void run() {<br> List arrayList = new ArrayList();<br><br> for(int i = 0; i &lt; 10; i++)<br> arrayList.add("物件 " + i);<br> <br> iteratorAdapter = <br> new IteratorAdapter(arrayList.iterator());<br> // We could still use MessageApplication<br> MessageApplication msgApp = new MessageApplication(); <br> msgApp.showAllMessage(iteratorAdapter);<br> }<br><br> public static void main(String[] args) {<br> MessageClient msgClient = new MessageClient();<br> msgClient.run();<br> }<br>} <br></pre><p></p>如程式所示的,透過Adapter模式,您原有程式中已設計好的類別不用更動,就可以引進新類別的功能,將上面的程式<span style="font-style: italic;"></span><cite class="urllink"></cite>UML類別結構畫出如下:<br><div style="text-align: center;"><br></div><br>上面的作法,是將要引進的新類別當作Adapter類別的一個物件成員,這是Object Adapter模式,其抽象結構如下:<br><div style="text-align: center;"><br></div><br></body></html>
评论
    相关推荐
    • 设计模式_
      本书设计实例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来...本书分类描述了一组设计良好,表达清楚的软件设计模式,这些模式在实用环境下有特别有用。
    • 设计模式培训
      从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。本书分类描述了一组设计良好,表达清楚的软件设计模式,这些模式在实用环境下有特别有用。
    • 23设计模式2
      从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。本书分类描述了一组设计良好,表达清楚的软件设计模式,这些模式在实用环境下有特别有用。
    • 设计模式教程
      本书设计实例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来...本书分类描述了一组设计良好,表达清楚的软件设计模式,这些模式在实用环境下有特别有用。
    • 23个设计模式
      23个设计模式总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。本书分类描述了一组设计良好,表达清楚的软件设计模式,这些模式在实用环境下有特别有用。
    • 软件设计模式
      书名: 设计模式可复用面向对象软件的基础 作者: Erich Gamma 等 译者: 李英军 马晓星 蔡敏 刘建中 本书设计实例从面向对象的...本书分类描述了一组设计良好,表达清楚的软件设计模式,这些模式在实用环境下有特别有用。
    • 设计模式.pdf
      本书设计实例从面向对象的设计中精选出23 个设计模式,总结 了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达...本书分类描述了一组设计良好,表达清楚的软件设计模式,这些 模式在实用环境下有特别有用。
    • 设计模式参考
      本书设计实例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来...本书分类描述了一组设计良好,表达清楚的软件设计模式,这些模式在实用环境下有特别有用。
    • 设计模式
      下载 第1 章引言 设计面向对象软件比较困难,而设计可复用的面向对象软件就更加困难。你必须找到相 关的对象,以适当的... 本书中涉及的设计模式并不描述新的或未经证实的设计,我们只收录那些在不同系统中
    • GaussDB_100_1.0.1-DATABASE-REDHAT-64bit.tar.gz
      guassdb100在redhat上安装包,单机部署的包,安装步骤请看我的文中介绍,经过大量实验搭建总结出来的文档