論文正文頁碼怎麼設定頁碼

  論文是描述學術研究成果進行學術交流的一種工具,那論文中的頁碼怎麼設定呢?下面小編給大家分享一些的方法,大家快來跟小編一起欣賞吧。

  

  一、 在選單欄選擇插入,進入頁尾選項,在彈出的視窗點選編輯頁尾

  二、接著在選單欄會出現設計這一選項,點選頁碼,在彈出的視窗選擇頁面底端,然後出現底端各種樣式,一般選擇居中的頁碼也就是選擇普通數字2

  三、點選普通數字2選項

  四、有時我們的畢業論文需要用到其他的頁碼,而非普通的阿拉伯數字,這時就需要在頁碼選項點選設定頁碼格式選項

  五、在頁碼格式視窗,選擇編號格式,起始頁碼,點選確定.

  六、最後在頁尾就出現數字

  關於java的論文範文

  淺析java代理模式

  摘 要:本文基於JAVA語言對靜態和動態代理做出了分析,並且進行了實現,對以後理解JAVA的JDK和 Cglib包提供的代理服務打下基礎。

  關鍵詞:設計模式;靜態代理;動態代理

  中圖分類號:TP393.02

  代理模式是一個非常重要的設計模式,不但我們自己在設計程式的時候經常用到,很多著名的框架如Spring、Hibernate等都用到了代理模式,因此理解並且學會靈活使用代理模式就非常必要。

  代理模式的定義:對其他物件提供一種代理以控制對這個物件的訪問。簡單地說,代理類具有和被代理類一樣的方法,呼叫者通過呼叫代理類的方法間接呼叫了被代理類相同名字的方法,對於呼叫者來說,它不用察覺自己呼叫的是代理類的方法,感覺上仍然在呼叫被代理類的方法。對於被代理類來說,代理類可以在呼叫其方法前後做其他工作,比如寫日誌等。按照代理的建立時期,代理類可以分為兩種:靜態代理類:在程式執行前,由程式設計師建立再編譯成.class檔案;動態代理類:在程式執行時,運用反射機制動態建立而成。

  1 靜態代理

  靜態代理類:由程式設計師建立或由特定工具自動生成原始碼,再對其編譯。在程式執行前,代理類的.class檔案就已經存在了。靜態代理原理就是聚合+多型。

  1.1 靜態代理

  靜態代理模式有三個角色:抽象介面、代理類、被代理類。其它類通過訪問代理類來訪問被代理類。

  1.2 靜態代理的實現

  ***1***建一個抽象介面

  public interface Subject {

  public void print***String words***;

  }

  ***2***建一個被代理類,需要實現抽象介面

  public class RealSubject implements Subject{

  public void print***String words*** {

  System.out.println***"被代理人郭襄說:"+words***;

  }

  }

  ***3***建一個代理類,需要實現抽象介面

  public class ProxySubjectimplements Subject{

  private Subject s;

  public ProxySubject***Subject s***{

  this.s=s;

  }

  public void print***String words*** {

  System.out.println***"我是代理,我名字叫黃蓉!"***;

  s.print***words***;

  System.out.println***"黃蓉代理完畢!"***;

  }

  }

  ***4***建一個客戶端程式測試,關鍵程式碼如下:

  Subject sub1=new RealSubject******;

  Subject sub2=new ProxySubject***sub1***;

  sub2.print***"你好!"***;

  執行輸出:我是代理,我的名字叫黃蓉!;被代理的人郭襄說:你好!;黃蓉代理完畢。從輸出可以看出,在真實物件的print方法被呼叫前後,代理物件都做了其他操作。對於客戶端來說,它只對介面Subject程式設計,提高了程式碼的可維護和可升級性。

  2 動態代理

  動態代理類:就是其代理類是在程式執行時,運用反射機制動態建立而成,並不需要像靜態代理那樣子事先要編寫好代理類。如果有多重代理,就要寫多個代理類,還有如果一個類有多個方法都需要代理的話,就更加使得程式碼很臃腫,不易維護,這個時候就需要動態地來生成代理類,這就是動態代理。

  2.1 動態代理

  動態代理模式至少要有6個角色:***1***抽象介面;***2***被代理類;***3***處理器介面;***4***自定義的處理器***實現處理器介面***;***5***生成成代理類的類;***6***代理類***由第5點的類通過反射技術自動生成***。

  2.2 動態代理的實現

  ***1***首先建一個抽象介面

  public interface Subject {

  public void print******;

  }

  ***2***建一個被代理類,需要實現Subject介面

  public class RealSubject implements Subject{

  publicvoid print****** {

  System.out.println***"被代理人郭襄"***;

  }

  }

  ***3***建一個處理介面

  public interface InvocationHandler {

  public Object invoke***Object proxy, Method method***throws Exception;

  }

  ***4***建一個使用者自定義的處理器,需要實現處理介面

  在invoke******方法裡寫上被代理類的方法呼叫前後要進行的動作。這個invoke******方法我們不用直接呼叫,是讓將來自動生成的代理類去呼叫的。invoke******方法關鍵程式碼如下:

  System.out.println***"我是代理人郭靖,開始代理"***;

  method.invoke***delegate***;

  System.out.println***"我是代理人郭靖,代理完畢"***;   ***5***建生成代理類的類,主要是運用java的反射技術和jdk的編譯工具生成代理類物件並載入到記憶體裡面,程式碼比較複雜,這裡不再詳細描述。

  ***6***編寫測試客戶端,關鍵程式碼如下

  Subject sub1=newRealSubject******;

  LogHandler hander=newLogHandler******;

  Subject sub2=***Subject***hander.bind***sub1***;

  sub2.print******;

  輸出結果:我是代理人郭靖;開始代理;被代理的人郭襄;我是代理人郭靖,代理完畢。從結果可以看出,代理成功,並且自動生成了代理類$Proxy.java檔案,併成功實現了代理的效果。

  2.3 動態代理的優勢

  動態代理的明顯好處上面就體現出來了:對於同一個物件的所有方法,如果對所有方法都是相同的處理邏輯,只需要寫一次處理邏輯就行;對於同一個抽象介面,不同的物件,如果對所有物件的相同名字的方法具有相同的處理邏輯***同一個物件,不同方法的處理邏輯可以不同***,也只需要寫一次處理邏輯就行,只需要寫一次處理器類即可;如果某一天,那個方法的處理邏輯被改變了,只需要改動一次即可,如果是靜態代理,每個代理類下的相對應的方法的處理邏輯都要改動一次,維護非常困難。

  3 結束語

  代理模式可以運用在如下這些方面:***1***用於在程式呼叫前後記錄相關日誌及其他附加操作;***2***用於某些操作前的安全及許可權的驗證等保護操作;***3***用於建立物件,也叫虛代理,對於某些大物件,在真正需要它的時候,運用代理模式去建立;***4***使得同一物件被多個客戶同時訪問不產生衝突。

  我們可以靈活使用代理模式,配合其他模式的使用,如工廠模式,使我們的程式更加高內聚、低耦合,而且非常優雅。

  參考文獻:

  [1]陳丁山.設計模式的研究與應用[J].電腦知識與技術***學術交流***,2007***23***.

  [2]周鳳麗,邵平凡,萬程鵬.設計模式在B/S開發中的應用[J].科技創業月刊,2005***12***.

  作者簡介:黃衝***1986.07-***,男,廣東湛江人,本科,助理工程師,研究方向:計算機。

  工作單位:廣東金融學院,廣州 510521