ticoAg/ChineseCorpus-Kaggle-fanti huggingface dataset:
facade.MethodA;
facade.MethodB;
// Wait for user
// "Subsystem ClassA"
class SubSystemOne
public void MethodOne
Console.WriteLine(" SubSystemOne Method");
// Subsystem ClassB"
class SubSystemTwo
public void MethodTwo
Console.WriteLine(" SubSystemTwo Method");
// Subsystem ClassC"
class SubSystemThree
public void MethodThree
Console.WriteLine(" SubSystemThree Method");
// Subsystem ClassD"
class SubSystemFour
public void MethodFour
Console.WriteLine(" SubSystemFour Method");
// "Facade"
class Facade
SubSystemOne one;
SubSystemTwo two;
SubSystemThree three;
SubSystemFour four;
public Facade
one = new SubSystemOne;
two = new SubSystemTwo;
three = new SubSystemThree;
four = new SubSystemFour;
public void MethodA
Console.WriteLine("\nMethodA ---- ");
one.MethodOne;
two.MethodTwo;
four.MethodFour;
public void MethodB
Console.WriteLine("\nMethodB ---- ");
three.MethodThree;
void freeze { ... }
void jump(long position) { ... }
void execute { ... }
void load(long position, char* data) {
char* read(long lba, int size) {
void startComputer {
void start(String args) {
直布羅陀國際機場（，）是位於歐洲直布羅陀的機場，屬軍民合用機場 ，由英國國防部屬下的英國皇家空軍管理。
直布羅陀機場十分接近市中心，距離市中心只有約500米。2004年，機場共處理了314,375名旅客及380噸貨物。值得一提的是，直布羅陀機場是全球少有的終端管制空域為A級空域的機場之一。
1941年11月，在建築中的直布羅陀機場的期間使用的一架推土機和壓路機。
1942年8月，皇家空軍編號233號的洛歇Hudson型戰鬥機正離開直布羅陀機場。
1942年，美國空軍在直布羅陀機場觀察在飛行中的另一個戰鬥機的噴火性能。
直布羅陀機場全景。
2011年，新直布羅陀機場接近完成。
直布羅陀機場控制塔臺。
此機場在第二次世界大戰時興建，於1939年投入營運，初期用作英國皇家海軍的緊急航空基地。及後，跑道透過在直布羅陀海灣填海方式延長，但當時西班牙聲稱該處水域乃屬西班牙領土，更一度引致西班牙和英國之間的外交關係緊張起來。跑道延長後，可容許較大型的飛機在直布羅陀降落。
1987年12月2日，英國和西班牙政府簽署了同意書，以容許兩國的民航客機均可在直布羅陀機場升降。
2006年9月18日，英國、西班牙和直布羅陀簽署了科多巴條約（Córdoba Accord），自此以後，所有來往直布羅陀機場的民航班機限制統統取消。
2006年11月17日，西班牙國家航空宣佈開辦從馬德里巴拉哈斯國際機場往返直布羅陀的直航服務，使用A319型客機飛行。這是自1979年後，再次有西班牙客機在直布羅陀升降。該航班已於同年12月16日開始投入服務。
2007年5月，也開辦往返馬德里和直布羅陀的航班，但已於同年9月30日終止。
2008年9月12日，君主航空恢復於2006年7月停辦的曼徹斯特往返直布羅陀航班，每周3班（逢星期一、三、五提供服務）。同年9月22日，西班牙國家航空宣布，基於需求問題，由9月28日起停辦從馬德里往返直布羅陀的航班，此令直布羅陀機場再度沒有來自西班牙的航班升降。
2010年12月，易捷航空宣布開辦利物浦往返直布羅陀航線，逢周二、四、六提供服務。
2011年5月18日，英倫航空宣布由2012年3月31日起開辦往返東米特蘭及直布羅陀的航線，以波音737-300飛行，逢周二、四、六提供服務。
準備起飛的飛機正在橫跨行車道路
*由於其跑道長度只有1,829米（6,000呎），因此大型廣體客機一般上也不能安全升降，故航空公司只能用小型窄體飛機服務直布羅陀的航班（最大也只是波音737或空中巴士A320系列）
*有一條行車道路橫跨跑道，全球罕見。
位於溫斯頓?邱吉爾大道與直布羅陀國際機場跑道交叉口的管制閘門
一條新的雙程車道也在建設中。它將通過新的航站樓，並在跑道的東部邊緣，此時它將通過下面的隧道，並通過一條環形交叉路口與跑道對面的魔鬼塔路連接。在跑道北面的公路隧道後，新的道路將平行於邊界行駛，經過飛機終點站飛行段。然後路將分為兩條，一條通往環路和邊界的道路，另一條通往航空港，北面和溫斯頓·邱吉爾大道。
直布羅陀機場現有的客運大樓由於面積太小，加上行車道路溫斯頓·丘吉爾大道橫跨跑道，大大限制了機場的運作。現時，每日有3班客機往返倫敦格域機場及魯頓機場，繁忙的日子更每天有多達7個航班升降。每當有航班升降時，溫斯頓·丘吉爾大道需封閉10分鐘，有些時候更需封閉達2小時。
未來擴展項目包括：
*興建一幢面積20,000平方米，樓高兩層的新客運大樓，面積較現有的客運大樓大3倍。新的客運大樓將會設有4個登機閘口和3條個行李認領輸送帶，每年將可處理旅客人次達100萬。
*客運大樓的東面設置一幢樓高3層，共220個泊車位的新停車場。
* 橫跨跑道的溫斯頓·丘吉爾大道將會留在原地，但只限緊急時才開放使用。一條全新的雙程分隔車道將會繞過客運大樓東面，並設有一條隧道橫跨跑道地底，在跑道的另一端，則連接著一個迴旋處和Devils Tower Road。至道跑道北面，離開隧道後，設有一條與機場邊界平行的新道路。之後該道路會一分為二，一條繞著機場邊界而行，另一條則通往客運大樓、北端及溫斯頓·丘吉爾大道。
*將會興建另一幢新停車場，而Devil's Tower Road上會興建一幢兩層高的設施大樓。
新客運大樓於2007年年底動工興建，並於2008年完成。至於設有4條行車線的新道路和隧道，則於2008年1月動工，預計於2009年年初完成，但截至2010年6月20日為止，工程仍在進行中，預計於2011年完成。由於新客運大樓的位置並非位於原有客運大樓的位置，因此工程進行期間，機場運作不會受到影響。新客運大樓可應付大幅增長的旅客數目，而跑道下的隧道則可減低車輛行程因飛機升降而造成的延誤。
File:GB_Airways_aircraft_landing_at_Gibraltar_Airport.jpg|一架英國航空A320客機在直布羅陀機場降落
File:Air Malta Plane in Gibraltar.jpg|一架馬耳他航空客機在直布羅陀機場停泊中
File:Gib Airport easyJet.jpg|貼有易捷航空標誌的前英航A320客機停泊在直布羅陀機場
File:Monarch Airlines A320 at Gibraltar.jpg|準備飛倫敦的君主航空A320客機正在上貨中（2008年3月）
File:Monarch G-OZBK At GIB 2.JPG|君主航空A320客機在閘口前，準備飛往倫敦
File:GIB departures.JPG|離境大堂貴賓室及登機區
File:RAF_Gibraltar_control_tower.jpg|控制塔
File:Gib Airport Runway.jpg|從溫斯頓·丘吉爾大道向西望向跑道
File:Gibraltar Airport Checkpoint.jpg|在機場跑道與溫斯頓·丘吉爾大道交匯點的保安檢查站
File:Map of the Gibraltar Airport (es).jpg|直布羅陀機場平面圖
*溫斯頓·丘吉爾大道（通往西班牙邊境的道路）貫穿機場跑道，每當有飛機升降時，道路就會封閉。
*此機場是建在從直布羅陀巨巖隧道工程而爆出來的巖石上。
*  新客運大樓、跑道下道路工程資料的新聞稿
*  新客運大樓的模擬圖片及建築設計
*  直布羅陀機場及唯一橫跨跑道道路的相片
*  World Aero Data：直布羅陀機場資料
橋接模式是軟件設計模式中最複雜的模式之一，它把事物對象和其具體行爲、具體特徵分離開來，使它們可以各自獨立的變化。事物對象僅是一個抽象的概念。如“圓形”、“三角形”歸于抽象的“形狀”之下，而“畫圓”、“畫三角”歸于實現行爲的“畫圖”類之下，然後由“形狀”調用“畫圖”。
; Abstraction
: 定義抽象的介面
: 該介面包含實現具體行爲、具體特徵的Implementor介面
; Refined Abstraction
: 抽象介面Abstraction的子類，依舊是一個抽象的事物名
; Implementor
: 定義具體行爲、具體特徵的應用介面
; ConcreteImplementor
: 實現Implementor介面
下列各語言的代碼都用於寫出兩個不同的圓的坐標和半徑。
API1.circle at 1:2 7.5
API2.circle at 5:7 27.5
/** "Implementor" */
interface DrawingAPI
public void drawCircle(double x, double y, double radius);
/** "ConcreteImplementor" 1/2 */
class DrawingAPI1 implements DrawingAPI
public void drawCircle(double x, double y, double radius)
System.out.printf("API1.circle at %f:%f radius %f\n", x, y, radius);
/** "ConcreteImplementor" 2/2 */
class DrawingAPI2 implements DrawingAPI
System.out.printf("API2.circle at %f:%f radius %f\n", x, y, radius);
/** "Abstraction" */
interface Shape
public void draw;                                            // low-level
public void resizeByPercentage(double pct);     // high-level
/** "Refined Abstraction" */
class CircleShape implements Shape
private double x, y, radius;
private DrawingAPI drawingAPI;
public CircleShape(double x, double y, double radius, DrawingAPI drawingAPI)
this.x = x;  this.y = y;  this.radius = radius;
this.drawingAPI = drawingAPI;
// low-level i.e. Implementation specific
public void draw
drawingAPI.drawCircle(x, y, radius);
// high-level i.e. Abstraction specific
public void resizeByPercentage(double pct)
radius *= pct;
/** "Client" */
class BridgePattern {
Shape shapes = new Shape2;
shapes0 = new CircleShape(1, 2, 3, new DrawingAPI1);
shapes1 = new CircleShape(5, 7, 11, new DrawingAPI2);
for (Shape shape : shapes)
shape.resizeByPercentage(2.5);
shape.draw;
interface IDrawingAPI {
void DrawCircle(double x, double y, double radius);
class DrawingAPI1 : IDrawingAPI {
public void DrawCircle(double x, double y, double radius)
System.Console.WriteLine("API1.circle at {0}:{1} radius {2}", x, y, radius);
class DrawingAPI2 : IDrawingAPI
System.Console.WriteLine("API2.circle at {0}:{1} radius {2}", x, y, radius);
interface IShape {
void Draw;                             // low-level (i.e. Implementation-specific)
void ResizeByPercentage(double pct);     // high-level (i.e. Abstraction-specific)
class CircleShape : IShape {
private IDrawingAPI drawingAPI;
public CircleShape(double x, double y, double radius, IDrawingAPI drawingAPI)
// low-level (i.e. Implementation-specific)
public void Draw { drawingAPI.DrawCircle(x, y, radius); }
// high-level (i.e. Abstraction-specific)
public void ResizeByPercentage(double pct) { radius *= pct; }
public static void Main(string args) {
IShape shapes = new IShape2;
foreach (IShape shape in shapes) {
shape.ResizeByPercentage(2.5);
shape.Draw;
struct DrawingAPI1 : IDrawingAPI {
struct DrawingAPI2 : IDrawingAPI
class CircleShape : IShape
where T : struct, IDrawingAPI
private static IDrawingAPI drawingAPI = new T;
public CircleShape(double x, double y, double radius)
shapes0 = new CircleShape(1, 2, 3);
shapes1 = new CircleShape(5, 7, 11);
/* Implementor*/
class DrawingAPI {
virtual void drawCircle(double x, double y, double radius) = 0;
virtual ~DrawingAPI {}
/* Concrete ImplementorA*/
class DrawingAPI1 : public DrawingAPI {
void drawCircle(double x, double y, double radius) {
cout drawCircle(m_x, m_y, m_radius);
void resizeByPercentage(double pct) {
m_radius *= pct;
double m_x, m_y, m_radius;
DrawingAPI *m_drawingAPI;
DrawingAPI1 dap1;
DrawingAPI2 dap2;
CircleShape circle1(1,2,3,&dap1);
CircleShape circle2(5,7,11,&dap2);
circle1.resizeByPercentage(2.5);
circle2.resizeByPercentage(2.5);
circle1.draw;
circle2.draw;
# Implementor
class DrawingAPI:
def drawCircle(x, y, radius):
# ConcreteImplementor 1/2
class DrawingAPI1(DrawingAPI):
def drawCircle(self, x, y, radius):
print "API1.circle at %f:%f radius %f" % (x, y, radius)
# ConcreteImplementor 2/2
class DrawingAPI2(DrawingAPI):
print "API2.circle at %f:%f radius %f" % (x, y, radius)
# Abstraction
class Shape:
# low-level
def draw(self):
# high-level
def resizeByPercentage(self, pct):
# Refined Abstraction
class CircleShape(Shape):
def __init__(self, x, y, radius, drawingAPI):
self.__x = x
self.__y = y
self.__radius = radius
self.__drawingAPI = drawingAPI
# low-level i.e. Implementation specific
self.__drawingAPI.drawCircle(self.__x, self.__y, self.__radius)
# high-level i.e. Abstraction specific
self.__radius *= pct
shapes =
CircleShape(1, 2, 3, DrawingAPI1),
CircleShape(5, 7, 11, DrawingAPI2)
for shape in shapes:
shape.resizeByPercentage(2.5)
shape.draw
策略模式作爲一種軟件設計模式，指對象有某個行爲，但是在不同的場景中，該行爲有不同的實現算法。比如每個人都要“交個人所得稅”，但是“在美國交個人所得稅”和“在中華民國交個人所得稅”就有不同的算稅方法。
*定義了一族算法（業務規則）；
*這族的算法可互換代替（interchangeable）。
Strategy Pattern in UML
LePUS3 ( legend)
class StrategyInterface
virtual void execute = 0;
class ConcreteStrategyA: public StrategyInterface
virtual void execute
cout execute;
ConcreteStrategyA concreteStrategyA;
ConcreteStrategyB concreteStrategyB;
ConcreteStrategyC concreteStrategyC;
Context contextA(&concreteStrategyA);
Context contextB(&concreteStrategyB);
Context contextC(&concreteStrategyC);
contextA.execute;
contextB.execute;
contextC.execute;
contextA.set_strategy(&concreteStrategyB);
contextA.set_strategy(&concreteStrategyC);
//StrategyExample test application
class StrategyExample {
Context context;
// Three contexts following different strategies
context = new Context(new FirstStrategy);
context.execute;
context = new Context(new SecondStrategy);
context = new Context(new ThirdStrategy);
// The classes that implement a concrete strategy should implement this
// The context class uses this to call the concrete strategy
interface Strategy {
// Implements the algorithm using the strategy interface
class FirstStrategy implements Strategy {
System.out.println("Called FirstStrategy.execute");
class SecondStrategy implements Strategy {
System.out.println("Called SecondStrategy.execute");
class ThirdStrategy implements Strategy {
System.out.println("Called ThirdStrategy.execute");
// Configured with a ConcreteStrategy object and maintains a reference to a Strategy object
class Context {
Strategy strategy;
public Context(Strategy strategy) {
this.strategy.execute;
namespace Wikipedia.Patterns.Strategy
// MainApp test application
static void Main
context = new Context(new ConcreteStrategyA);
context.Execute;
context = new Context(new ConcreteStrategyB);
context = new Context(new ConcreteStrategyC);
interface IStrategy
class ConcreteStrategyA : IStrategy
Console.WriteLine( "Called ConcreteStrategyA.Execute" );
class ConcreteStrategyB : IStrategy
Console.WriteLine( "Called ConcreteStrategyB.Execute" );
class ConcreteStrategyC : IStrategy
Console.WriteLine( "Called ConcreteStrategyC.Execute" );
class Context
IStrategy strategy;
public Context(IStrategy strategy)
strategy.Execute;
//invoked from application.initialize
private function init : void
var context:Context;
context = new Context( new ConcreteStrategyA );
context = new Context( new ConcreteStrategyB );
context = new Context( new ConcreteStrategyC );
package org.wikipedia.patterns.strategy
public interface IStrategy
function execute : void ;
public final class ConcreteStrategyA implements IStrategy
public function execute:void
trace( "ConcreteStrategyA.execute; invoked" );
public final class ConcreteStrategyB implements IStrategy
trace( "ConcreteStrategyB.execute; invoked" );
public final class ConcreteStrategyC implements IStrategy
trace( "ConcreteStrategyC.execute; invoked" );
public class Context
private var strategy:IStrategy;
public function Context(strategy:IStrategy)
public function execute : void
strategy.execute;
execute;
$context = new Context(new ConcreteStrategyB);
$context->execute;
$context = new Context(new ConcreteStrategyC);
interface IStrategy {
public function execute;
class ConcreteStrategyA implements IStrategy {
public function execute {
echo "Called ConcreteStrategyA execute method\n";
class ConcreteStrategyB implements IStrategy {
echo "Called ConcreteStrategyB execute method\n";
class ConcreteStrategyC implements IStrategy {
echo "Called ConcreteStrategyC execute method\n";
var $strategy;
public function __construct(IStrategy $strategy) {
$this->strategy = $strategy;
$this->strategy->execute;
new StrategyExample;
@protocol Strategy
- (void)print;
@interface ConcreteStrategyA : NSObject
@interface ConcreteStrategyB : NSObject
@interface Context : NSObject
id _strategy;
@property (nonatomic, assign) id strategy;
-(void)doIt;
@implementation ConcreteStrategyA
- (void)print
NSLog(@"Test01");
@implementation ConcreteStrategyB
NSLog(@"Test02");
@implementation Context
@synthesize strategy = _strategy;
-(void)doIt
self.strategy print;
* 根據行政暨公職局的統計，截至昨天，一共接獲超過兩萬個選民登記申請，其中一萬三千個是新登記申請。
* 生態學會反對港務局用補充海沙方式恢復黑沙海灘原狀。
* 祐漢小販大樓早上動土，預計明年底落成。
* 中國前外交部部長李肇星等四人獲澳門大學頒獎榮譽博士學位。
* 神舟七號代表團到達澳門，開始三日訪問。
* 澳門消費者委員會執行委員會主席何思謙，涉嫌串同親屬在公務採購程序中濫用職權、詐騙、在法律行為中分享經濟利益、公務上之侵佔、偽造文件，以及行賄受賄的案件，被移送檢察院偵訊。何思謙已被勒令停職。 澳門日報
* 「九九九」緊急求救電話系統晚上出現電腦故障失靈約一小時。 東方日報
* 法國飲食指南米芝蓮推出香港澳門指南，六家餐廳獲得星級認證，一家獲得最高榮譽的三星認證。 明報即時新聞
* 信德集團和朱美拉集團在香港中環簽署管理合作協議，宣布準備在路氹城夥拍興建朱美拉澳門酒店，預計在2013年完工。 ON.CC即時新聞
* 澳門巴士票價今起由原本2.5澳門元起增加至3.2澳門元起，而澳門通用戶可獲政府補貼。 澳門日報
Wonder Girls（，簡稱：WG）為韓國JYP娛樂在2007年所推出的五人女子團體，原由先藝擔任隊長。解散前成員包括譽恩、宥斌、惠林及宣美，解散前隊長由譽恩擔任。
於2007年以〈Irony〉為人認識，同年九月，改編後的〈〉在韓國引發熱潮而知名度大增。2008年由樸軫永親自參與演出的〈Nobody〉MV一曲再度引領潮流。憑借《Nobody》和《Tell Me》當時的知名度轟動了全球。未解散前是韓國的國民女團和國民妹妹，一同與少女時代捉住了女團市場。
JYP於2017年1月26日正式宣佈Wonder Girls因合約到期解散，於2月10日發行最後一張數位單曲。
Wonder Girls於2007年5月在漢陽大學演唱〈Irony〉，由左到右：昭熙、泫雅、譽恩、先藝及宣美
起初Wonder Girls是透過由MTV舉辦的電視節目《》進行介紹，首四集概述了各成員的喜好、身份以及展示她們的行程。不久譽恩被選為團體的第五名成員後，Wonder Girls於2007年2月10日首次在MBC的《Show! 音樂中心》演唱〈Irony〉，其後2月13日於《MTV Studio》中有獨立的表演舞臺，她們演唱由美國團體小野貓原唱的〈Don't Cha〉以及自己的歌曲〈Irony〉及〈??? ??〉（抱歉的心）。先藝獨唱天命真女的〈Stand Up for Love〉，接著泫雅亦獨自展現她的擅長舞蹈。其餘三名成員（譽恩、宣美及昭熙）也演唱美國歌星珍娜·傑克森的〈Together Again〉。與此同時，她們推出的首張唱片《The Wonder Begins》同年銷量達11,454張。自此之後，Wonder Girls在Daum成立Fancafe，名叫「WonderFul」。JYP娛樂原本計劃Wonder Girls是集中在中國活動的團體，因此她們從2007年初次登臺後便一直學習漢語。
2007年6月25日，昭熙在拍攝電影《???????》（熱情似火）時從電單車墮下而得腳傷，並休養了近一個月，其餘4名成員仍繼續活動。但7月31日，泫雅因承受不住繁忙的行程而暈倒，使得從小患有的慢性腸胃炎一度惡化，在父母擔心其健康情況下退出團體。8月19日，昭熙康復後首次表演〈Irony〉。JYP娛樂在找尋新成員時，韓國經紀公司將他們的練習生宥斌轉讓給JYP娛樂。JYP娛樂於9月5日正式宣布新成員為宥斌，9月7日Wonder Girls在KBS《音樂銀行》以新的成員形式首次現場表演。
9月13日推出首張音樂專輯《The Wonder Begins》，由於宥斌加入團體才一個星期，因此專輯的歌曲沒有收錄她的部分。9月14日凌晨從釜山返回首爾時發生車禍，除了先藝的膝蓋受傷外，其它的成員僅受到輕傷，原訂的行程因而取消，經過休養後，於9月27日重返舞臺展開宣傳活動。〈Tell Me〉加入宥斌的饒舌演唱後，深受大眾歡迎。10月開始，網上的影片網出現了不少模仿她們舞蹈的片段，大多是法國、菲律賓、泰國的歌迷所發佈的，該曲更成為泰國的首名，更一度牽起「Tell Me」熱潮。她們也藉由「Tell Me」一曲獲得「國民妹妹」的稱號。2007年年底，Wonder Girls為首張音樂專輯而作進行了重大的推廣，並於各演唱會中開始表演另一首專輯內的歌曲－〈? ??〉（這傻瓜），她們以既不同又眾多的衣著款式出現於舞臺及遊戲節目上，於收音機、音樂節目等中多次獻唱，以及與其他團體如Big Bang聯合演唱。2008年2月，她們以參與在美國舉行的「The JYP Tour」演唱會為起點，逐漸擴展活動範圍。另外，Wonder Girls在同年9月亦被英國《Virgin Media》媒體選為「頂尖的女子團體」之一。同年5月，於泰國曼谷舉行了一個歌迷聚會，總共吸引了超過一萬名的歌迷參加。同年秋季，她們在美國紐約皇后區法拉盛與其他JYP娛樂的藝人一同表演。
Wonder Girls的第三張專輯《So hot》於5月22日發行。雖然單純旋律的反覆有中毒性的音樂伴奏讓人聯想到〈Tell Me〉，但是在這首歌中還加入了〈Tell Me〉中也無法找到的魅力要素，可說是Wonder Girls〈Tell Me〉的升級版。首先伴舞時強調了可愛性感，以肩膀和兩手圍住臉和腰部，強調臀部和胸線的伴舞讓人印象深刻。五名團員全體向旁站，感覺就像是五隻狐貍搖擺尾巴一樣。〈Tell Me〉如果是哀求給我更多的愛的告白的“可愛嘮叨”一樣的伴舞的話，那〈So hot〉則是以“我非常漂亮”、“我非常有魅力”等自信感為主，團員們的豹紋服裝也呈現了破格的改變。
2008年9月，Wonder Girls換上懷舊的髮型及舞衣，大玩復古形象。最新單曲輯《The Wonder Years - Trilogy》的主打歌〈Nobody〉，是繼在Retro系列前兩個作品〈Tell Me〉和〈So Hot〉之後，「復古三部曲」的壓軸作。監製樸軫永將Motown風格注入〈Nobody〉，呈現出不一樣的感覺。MV首度在網路公佈時，即獲得全韓關注的焦點，在2008年底「Nobody」襲捲韓國各大音樂、綜藝節目。Nobody一曲也因此紅遍全亞洲，掀起了全球模仿熱潮，堪稱JYP最佳神曲之作。
Wonder Girls在10月於2008 BICH開幕禮中表演〈Nobody〉。由左到右：宣美、昭熙、先藝、譽恩及宥斌
在2008年達到顛峰並囊括各大獎項的Wonder Girls，JYP娛樂決定讓她們到美國發展。五位女孩拋開了在韓國一切的人氣與光環，到美國從零開始。2009年6月，JYP娛樂宣佈Wonder Girls將會參與強納斯兄弟在北美的2009巡迴演唱會。同時，公司亦宣佈〈Nobody〉將會是團體首張英文單曲，緊隨著〈Tell Me〉，並會推出英文專輯。為配合Wonder Girls專注在美國的活動，昭熙和宣美皆因未能在美國繼續高中的學業而向學校申請退學，其餘三位成員也向所在的大學申請休學。
2009年6月26日，Wonder Girls推出英文單曲〈Nobody〉。她們原本只會參與13場的強納斯兄弟演唱會，但其後卻增至45場。在這期間，5位成員放下身段，穿著全套打歌服在街頭發傳單，並邀請當地人與她們拍照或是教青少年們Nobody經典舞步來宣傳自己。踩著高跟鞋在街頭站了一整天，團員們的腳經常是又踵又痛。巡迴期間都是在顛岥的巡迴巴士上吃飯、洗澡、睡覺，那段日子異常辛苦，她們總是有個小希望：「如果能在靜止的床睡覺該有多幸福啊！」2009年10月，單曲〈Nobody〉首次打入美國公告牌百強單曲榜第76位，成為首隊打入此排行榜的韓國團體。同時，網上亦出現了不少模仿她們舞蹈的片段。
2010年1月22日年紀尚小的宣美因為無法適應長期在美國的生活，曾在返韓記者會上流淚表示曾經在美國有一段時間，因為思念家人且在陌生的環境下經常感到孤獨，每晚都是伴著淚水入眠。JYP公司宣佈宣美會暫停她的音樂事業以繼續學業生涯，並由Sisters的預備成員惠林接替。。直至2月20日，宣美完成最後餘下的演唱會後，於五日後正式退出團體並返回韓國。正因宣美的退出，她們原先預備於同年2月舉行的美國巡迴演唱會和專輯的推出時間需延後舉行。
2010年於舊金山的演出，由左到右：先藝、宥斌、譽恩、惠林、昭熙2010年4月21日，她們赴臺灣展開4天3夜的宣傳臺版Nobody精選專輯行程，同時慶祝在臺銷售量高達五白金，並獻唱了中文版的〈Nobody〉。5月16日，Wonder Girls正式回歸韓國，推出新單曲《2 Different Tears》，宣傳僅僅兩週的時間，隨後即飛返美國展開6月~7月Wonder Grils單獨巡迴演唱會。之後JYP娛樂開始舉辦JYP Nation Tour世界巡迴演唱會。同時單曲新專輯《2 Different Tears》進美國BILLBOARD專輯榜的第21名。《Nobody》在BILLBOARD“2010年度熱門單曲銷售（Hot Single Sales）100”中更是登上了第31位。
年底Wonder Girls回到亞洲活動，11月在澳門舉辦的2010 MAMA 亞洲音樂大賞作為壓軸神秘表演嘉賓，從天而降的開場表演立刻成為關注焦點。8月在馬來西亞代表韓國參加了世界MTV大型演唱會，同年12月香港和馬來西亞舉辦單獨演唱會。其間前後也出席了不少中國商演活動及江蘇跨年活動。
攝於2011年韓國娛樂大獎表演現場。
2011年Wonder Girls主要集中於紐約籌備新專輯，已知收錄7首新歌曲，作為TV電影的原聲帶。她們在6月24日到北京參與「第五屆中國移動無線音樂盛典咪咕匯」，並獲得年度最高銷量海外團體。
Wonder Girls在7月左右前往希臘代表韓國支持「2011年世界夏季特殊奧林匹克運動會」，並在7月14日出席了其閉幕式。她們於閉幕典禮更表演了韓國傳統歌曲〈阿里郎〉，另外表演了兩首熱門舞曲〈Tell Me〉及〈Nobody〉。 於7月23日，Wonder Girls到了青島參與「2011中國青島國際海洋節開幕式大型文藝晚會」。8月17及18日，她們跟隨JYP娛樂其餘旗下藝人到日本埼玉超級體育館舉行「JYP Nation Concert 2011」。
9月，Wonder Girls與美國女子團體SCHOOL GYRLS一同開始拍攝電視電影「The Wonder Girls」（前名為Wonder Girls at the Apollo）。8月Wonder Girls翻唱B.o.B.和Bruno Mars的“Nothin'On You”Mashup Monday活動，在BILLBOARD「BEST Mashup Monday of 2011」中，以65%的選票領先其他對手登上了第一位。
2011年11月7日，推出第二張韓語正規專輯《Wonder World》，以〈Be my baby〉作主打，正式回歸韓國樂壇。12月3日，Wonder Girls被任命為K FOOD之宣傳大使，並推出英文歌曲〈K Food Party〉宣傳韓國食品。12月22日至25日，以《Wonder World》內另一歌曲〈Girls Girls〉作特別宣傳。
攝於2012年9月舉行的「Wonder World Tour 2012」現場。
2012年1月11日，Wonder Girls在美國推出單曲《The DJ Is Mine》作電視電影「The Wonder Girls」的OST。2月2日，電視電影「The Wonder Girls」在美國電視臺Teen Nick首播；而這電視電影令Wonder Girls在一美國頒獎禮《2012 Nickelodeon Kids' Choice Awards》中被提名「Favorite Asian Act」。2月22日，Wonder Girls出席第一屆Gaon Chart K-pop Awards 2011，並獲得2011年11月最佳歌手獎。
3月23日，社長樸軫永透過傳媒公佈Wonder Girls隨後的活動，「我們已與美國的拍擋相討有關發行新專輯的日期以及市場的問題，請再稍等一會」，「我們已完成了包含12首歌曲的美國新專輯，很多有名的製作人都有參與製作。一個最大型的MV拍攝亦已完成，主打歌將會給予大家一個驚喜」，「因為已經完成了美國專輯的製作，我們將會開始製作下一張新韓語專輯。讓我們將這個夏天變成一個屬於Wonder Girls在韓國以及海外的節日吧！」
4月28日出席《Korean Music festival 10 Hollywood Bowl 2012》。4月中旬，Wonder Girls在日本為Marshpuff推出廣告，以〈Nobody〉日文版作背景音樂，並宣佈將於7月25日推行首張日本單曲《Nobody For Everybody》於日本正式出道。年5月29日，JYP娛樂公開第一段Wonder Party宣傳片，內容為其音樂錄像的製作花絮。從片中得知，是次音樂錄像邀請了300名市民參與，並有500名員工協助拍攝，整個計劃歷時三個月，可見JYPE對是次音樂錄像的重視。而且以製作花絮作為新曲宣傳片為首次見於韓國團體之中。同日JYP娛樂公開曲目列表，當中的歌曲〈R.E.A.L.〉及〈Girlfriend〉均由成員譽恩親自創作，〈Hey Boy〉則由宥斌創作。6月3日，細碟《Wonder Party》正式推出，音樂錄影帶同時公開。在短短一日時間內，音樂錄影帶觀看次數已達一百萬；而即使這是韓國專輯，亦在美國「iTunes Top Pop Albums Chart」達第74位的好成績。
2012年7月7日，在首爾蠶室室內體育館，舉行亞洲巡迴演唱會韓國站《WONDER WORLD TOUR in SEOUL 2012》，是她們相隔3年再度於韓國單獨開唱，6,000名歌迷入場支持。宣美及樸軫永等明星亦到場支持。
2012年7月10日，公開了與世界級的hiphop音樂人Akon合作單曲《Like Money》，音樂錄像同時公開。BILLBOARD及VEVO等知名美國音樂網站亦分別在首頁介紹了音樂錄像；在韓國各大音樂排行榜排行第一；美國「iTunes Electronic Top Songs Chart」達第3位的好成績，在其他國家亦達前10位的成績。
2013年1月26日隊長先藝與加拿大籍的韓僑傳教士James Park結婚。婚前記者會時表示並不會因此退出Wonder Girls，但何時回歸還不能確定。12月21日JYP娛樂發表聲明，表示與先藝、宥斌、譽恩和昭熙的合約到期，先藝、宥斌和譽恩決定續約，昭熙想專注於演員活動而決定不續約，Wonder Girls目前以個人活動為主。
6月23日因先藝回韓國而傳出Wonder Girls將回歸的消息，隔天JYP娛樂證實Wonder Girls會在8月3日推出第三張正規專輯《REBOOT》，以譽恩、宥斌、惠林、宣美的四人樂團形式回歸歌壇。屆時宥斌將擔任鼓手、譽恩是鍵盤手、惠林是吉他手、宣美則是貝斯手，除了譽恩會彈鋼琴之外，其它三名成員都是從零開始學習樂器，大約練習了一年。7月20日JYP娛樂發表正式聲明，確定昭熙與先藝退出Wonder Girls，並陸續公開宣美、宥斌、惠林、譽恩的回歸預告影片。8月3日公開音源兩個小時後，就佔據韓國八個主要音源榜第一名，並在隔天韓國時間下午兩點達成「All Kill」。美國告示牌評選2015年韓國流行音樂最佳十張專輯，《REBOOT》名列第一。
4月3日，成員惠林與JYP娛樂歌手Bernard Park合作推出數位單曲《With You》。
5月10日，官方宣布Wonder Girls即將攜新專輯回歸，且此次專輯為首次使用自創曲作為主打歌，新專輯將於六月底或七月初發行。6月9日公布新專輯內收錄曲《To the Beautiful You (致美麗的你)》將於6月18日 ~ 19日在首爾創新園舉行的 「第6屆首爾Record & CD展」 首次公開，當日販售了收錄 Wonder Girls 新單曲《To the Beautiful You (致美麗的你)》的黑膠唱片，限量500張的商品在開賣後90分鐘隨即售罄。
6月12日，成員譽恩以HA:TFELT名義與歌手Younha和Cheetah合作推出自創曲《Get It?》。
7月4日，JYP公開了新單曲單曲專輯《Why So Lonely》的曲目清單及四個版本的專輯封面等等。專輯收錄了包括同名主打歌《Why So Lonely》在內的3首歌曲，另兩首為《To the Beautiful You (致美麗的你)》和《Sweet & Easy》，三曲均由成員創作。
7月5日凌晨，JYP公布Wonder Girls的新單曲專輯《Why So Lonely》的音源及MV，此曲由宣美、惠林、宥斌及作曲家洪志尚共同創作，有別於上回主打歌「I Feel You」的80年代舞曲風格，這是一首配合70年代曲風、流行樂、雷鬼風格及Trot的作品
。主打歌有迷人的吉他即興演奏及豐富有趣的節奏演變，歌詞則帶有憤世嫉俗的意味。7月6日上午九時， Wonder Girls的單曲專輯同名主打歌《Why So Lonely》在越南、泰國及菲律賓iTunes專輯排行榜佔據了第一位。回歸當天，「Why So Lonely」音源橫掃韓國八大音源網站實時榜一位，再一次達成All-Kill。7月8日晚上十時，達成Perfect All-Kill。。《Why So Lonely》累計獲得4個冠軍。距離上次一位冠軍已有4年之久。
2017年1月26日，JYP娛樂發表官方聲明，表示經過長時間討論後Wonder Girls決定解散，並在出道十周年2月10日發表最後一張數位單曲《描繪》（；）。以下為JYP娛樂官方聲明：
Yu Bin
Kim Yu-Bin
Ye Eun
Park Ye-Eun
京畿道高陽郡
HA:TFELT
Hot Felt
Min Sun-Ye
Sun Mi
Lee Sun-Mi
全羅北道裡里市
Kim Hyun-A
Ahn So-Hee
Hye Rim
Woo Hye-Rim
Christina Woo
ImageSize   = width:600 height:275
PlotArea    = width:400 height:200 left:60 bottom:65
Period      = from:2007 till:2017
TimeAxis    = orientation:horizontal format:yyyy
bar:YuBin text:宥斌
bar:YeEun text:譽恩
bar:SunYe text:先藝
bar:SunMi text:宣美
bar:HyunA text:泫雅
bar:SoHee text:昭熙
bar:HyeRim text:惠林
bar:YuBin     from:09/05/2007 till:01/26/2017
bar:YeEun      from:02/10/2007 till:01/26/2017
bar:SunYe       from:02/10/2007 till:07/20/2015
bar:SunMi    from:02/10/2007 till:02/25/2010
bar:SunMi    from:08/03/2015 till:01/26/2017
bar:HyunA      from:02/10/2007 till:07/30/2007
bar:SoHee  from:02/10/2007 till:07/20/2015
bar:HyeRim  from:05/16/2010 till:01/26/2017
*Reboot（2015年8月3日）
* 1st國內首場演唱會（The 1st Wonder）
首爾奧林匹克公園擊劍館
* 1st美國巡迴演唱會（Wonder World Tour）
Tabemacle
Hammerstein
Nob hill Masonic
* 1st亞洲巡迴演唱會（Ultimate Live Concert）
Impact Arena Muang Thongtani
Stadium Negara
*2nd亞洲巡迴演唱會（Wonder World Tour 2012）
Resorts World Sentosa, CompassBallroom
印尼雅加達站
Tennis Indoor Senayan
2010 JYP NATION "TEAM PLAY"
2011年8月17-18日
JYP NATION in JAPAN 2011
JYP Nation in Korea 2012
2012年8月18-19日
JYP NATION in JAPAN 2012
日本國立代代木競技場第一體育館
2016年8月6-7日
JYP Nation "Mix&Match" in Seoul 2016
JYP Nation "Mix&Match" in japan 2016
2009年仁川韓流演唱會
第八屆BAZAAR明星慈善夜
上海香格里拉大酒店
2010 MTV世界舞臺馬來西亞演唱會
馬來西亞吉隆坡雙威礁湖度假村
Mnet Ultimate Live Taiwan大韓流演唱會
江蘇衛視跨年演唱會
香港維多利亞公園
MBC Korean Music Wave in Google演唱會
美國加州Shoreline Amphitheatre
KBS Music Bank in Hong Kong演唱會
M-LIVE MO.A演唱會
越南Phu Tho Stadium
第九屆《SGC SUPER LIVE in Seoul》
一山 KINTEX 第二展示場
2015 SBS 歌謠大戰
MBC 電視臺
2015 MBC 歌謠大祭典
三成洞 COEX
韓流慶典 K-POP 演唱會
江南永東大路 COEX 廣場
韓國音樂節目排行榜
The Wonder Begins
The Wonder Years - Trilogy
G.N.O.（Girls Night Out）
Me. In
Girls Girls
Wonder Party
Why So Lonely
&nbsp;HOT3
To The Beautiful You
「－」表示該段時期未設立排行榜；「TAKE7」為《人氣歌謠》排名候選曲，未能獲得一位；「(1)」表示兩星期冠軍、「1」表示三星期冠軍、「{1}」表示四星期冠軍、「」表示五星期冠軍、「【1】」表示六星期冠軍、「/」表示未有相關資料。
一位總數：40
法頓公園球場（Fratton Park）是一個位于英格蘭南部樸茨茅斯的專業足球場，目前是英格蘭足球甲級聯賽球會樸茨茅斯的主場。
觀察者模式是軟體設計模式的一種。在此種模式中，一個目標物件管理所有相依於它的觀察者物件，並且在它本身的狀態改變時主動發出通知。這通常透過呼叫各觀察者所提供的方法來實現。此種模式通常被用來實時事件處理系統。
File:Observer-pattern-class-diagram.png
參與本模式的各類別列出如下。成員函式以模擬的方式列出。
此抽象類別提供一個界面讓觀察者進行添附與解附作業。此類別內有個不公開的觀察者串鍊，並透過下列函式(方法)進行作業
* 添附(Attach)：新增觀察者到串鍊內，以追蹤目標物件的變化。
* 解附(Detach)：將已經存在的觀察者從串鍊中移除。
* 通知(Notify)：利用觀察者所提供的更新函式來通知此目標已經產生變化。
添附函式包涵了一個觀察者物件參數。也許是觀察者類別的虛擬函式(即更新函式)，或是在非物件導向的設定中所使用的函式指標(更廣泛來講，函式子或是函式物件)。
此類別提供了觀察者欲追蹤的狀態。也利用其源類別(例如前述的抽象目標類別)所提供的方法,來通知所有的觀察者其狀態已經更新。此類別擁有以下函式
* 取得狀態(GetState)：回傳該目標物件的狀態。
抽象觀察者類別是一個必須被實做的抽象類別。這個類別定義了所有觀察者都擁有的更新用介面，此介面是用來接收目標類別所發出的更新通知。此類別含有以下函式
* 更新(Update)：會被實做的一個抽象(虛擬)函式。
這個類別含有指向目標類別的參考(reference)，以接收來自目標類別的更新狀態。此類別含有以下函式
* 更新(Update)：是前述抽象函式的實做。當這個函式被目標物件呼叫時，觀察者物件將會呼叫目標物件的取得狀態函式，來其所擁有的更新目標物件資訊。
每個觀察者類別都要實做它自己的更新函式，以應對狀態更新的情形。
當目標物件改變時，會通過呼叫它自己的通知函式來將通知送給每一個觀察者物件，這個通知函式則會去呼叫已經添附在串鍊內的觀察者更新函式。通知與更新函式可能會有一些參數，好指明是目前目標物件內的何種改變。這麼作將可增進觀察者的效率(只更新那些改變部份的狀態)。
* 當抽象個體有兩個互相依賴的層面時。封裝這些層面在單獨的物件內將可允許程式設計師單獨地去變更與重複使用這些物件，而不會產生兩者之間交互的問題。
* 當其中一個物件的變更會影響其他物件，卻又不知道多少物件必須被同時變更時。
* 當物件應該有能力通知其他物件，又不應該知道其他物件的實做細節時。
觀察者模式通常與 MVC 範式有關係。在 MVC 中，觀察者模式被用來降低 model 與 view 的耦合程度。一般而言， model 的改變會觸發通知其他身為觀察者的 model 。而這些 model 實際上是 view 。 Java Swing 就是個範例，示意了 model 預期會透過 PropertyChangeNotification 架構以送出改變的通知給其他 view 。 Model 類別是 Java bean 類別的一員，並擁有與上述目標類別同樣的行為。 View 類別則繫結了一些 GUI 中的可視元素，並擁有與上述觀察者類別同樣的行為。當應用程式在執行時。使用者將因 view 做出相應的更新而看見 model 所產生的變更。
class AbstractSubject(object):
def register(self, listener):
raise NotImplementedError("Must subclass me")
def deregister(self, listener):
def notify_listeners(self, event):
class Listener(object):
def __init__(self, name, subject):
subject.register(self)
def notify(self, event):
print self.name, "received event", event
class Subject(AbstractSubject):
self.listeners =
self.data = None
def getUserAction(self):
self.data = raw_input('Enter something to do:')
return self.data
# Implement abstract Class AbstractSubject
self.listeners.append(listener)
self.listeners.remove(listener)
for listener in self.listeners:
listener.notify(event)
if __name__=="__main__":
# make a subject object to spy on
subject = Subject
# register two listeners to monitor it.
listenerA = Listener("", subject)
listenerB = Listener("", subject)
# simulated event
subject.notify_listeners ("")
# outputs:
#      received event
action = subject.getUserAction
subject.notify_listeners(action)
#Enter something to do:hello
#      received event hello
C#和其他使用.NET Framework的語言一般無需使用接口和類實現典型的觀察者模式，但是這裡依然給一個例子。
// IObserver --> interface for the observer
public interface IObserver