下面列舉四種最常用的設計模式
一、Strategy模式
1、兩大原則
Strategy 模式體現了如下的兩大原則:
1,針對接口編程,而不是針對實現編程。
2,多用組合,少用繼承。
2、 例子:
二、Iterator模式
提供一種方法順序訪問一個聚合對象中各個元素, 而又不需暴露該對象的內部表示。
這種設計模式非常普遍,
比如Java里面的:
public interface Iterator {
boolean hasNext();
Object next();
void remove();
}
以及C++ STL里面的 iterator使用 ++ 訪問。
三、Singleton模式
四、Factory Method模式
Factory Method模式在不同的子工廠類生成具有統一界面接口的對象,一方面,可以不用關心產品對象的具體實現,簡化和統一Client調用過程;另一方面,可以讓整個系統具有靈活的可擴展性。
1 abstract class BallFactory{ 2 protected abstract Ball makeBall(); //Factory Method 3 } 4 class BasketballFact extends BallFactory{ 5 public Ball makeBall(){ //子類實現Factory Method決定實例化哪一個類的 6 return new Basketball(); 7 } 8 } 9 class FootballFact extends BallFactory{ 10 public Ball makeBall(){ //子類實現Factory Method決定實例化哪一個類的 11 return new Football(); 12 } 13 } 14 class Basketball extends Ball{ 15 public void play(){ 16 System.out.println("play the basketball"); 17 } 18 } 19 class Football extends Ball{ 20 public void play(){ 21 System.out.println("play the football"); 22 } 23 } 24 abstract class Ball{ 25 protected abstract void play(); 26 } 27 public class test{ 28 public static void main(String[] args){ 29 BallFactory ballFactory=new BasketballFact(); 30 Ball basketball=ballFactory.makeBall(); 31 basketball.play(); 32 33 ballFactory=new FootballFact(); 34 Ball football=ballFactory.makeBall(); 35 football.play(); 36 } 37 }