प्रौद्योगिकी साझेदारी

आदेशप्रतिमानं तेषां अनुप्रयोगं च अन्वेष्टुम्

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

आदेशविधिः

आदेशविधिः एकः व्यवहारनिर्माणप्रतिमानः अस्ति यः अनुरोधं पृथक् वस्तुरूपेण परिवर्तयति यस्मिन् अनुरोधसम्बद्धाः सर्वाः सूचनाः सन्ति । एतत् परिवर्तनं भिन्न-भिन्न-अनुरोधानाम् आधारेण, विलम्ब-अथवा कतार-अनुरोधानाम् आधारेण पद्धतीनां पैरामीटर्-करणं, अकरणीय-क्रियाः च कार्यान्वितुं च शक्नोति ।

आदेश मोड संरचना

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

  1. प्रेषकः (प्रेषकः) - "Invoker" इति अपि ज्ञायते - वर्गः अनुरोधस्य आरम्भस्य उत्तरदायी भवति, यस्मिन् आदेशवस्तुनः सन्दर्भं संग्रहीतुं सदस्यचरं भवितुमर्हति । प्रेषकः प्रत्यक्षतया ग्राहकाय अनुरोधं न प्रेषयित्वा आदेशं प्रेरयति । ध्यानं कुर्वन्तु यत् प्रेषकः आदेशवस्तुनिर्माणस्य उत्तरदायी नास्ति: प्रायः सः क्लायन्ट् इत्यस्मात् पूर्वं निर्मितं आदेशं कन्स्ट्रक्टर् मार्गेण प्राप्नोति ।
  2. आदेशः(Command) interface प्रायः केवलं आदेशं निष्पादयितुं विधिं घोषयति ।
  3. विशिष्टादेशाः (Concrete Commands) इत्यनेन विविधप्रकारस्य अनुरोधाः कार्यान्विताः भविष्यन्ति । विशिष्टः आदेशः एव कार्यं न सम्पन्नं करोति, अपितु आह्वानं व्यावसायिकतर्कवस्तुं प्रति प्रत्याययति । परन्तु कोडस्य सरलीकरणाय एते वर्गाः विलीनाः कर्तुं शक्यन्ते । वस्तुनः निष्पादनविधिं प्राप्तुं आवश्यकाः मापदण्डाः विशिष्टादेशानां सदस्यचराः इति घोषितुं शक्यन्ते । भवान् कमाण्ड् ऑब्जेक्ट् अपरिवर्तनीयं कर्तुं शक्नोति तथा च केवलं कन्स्ट्रक्टर् मार्गेण एतेषां सदस्यचरानाम् आरम्भीकरणं अनुमन्यते ।
  4. ग्राहकः (Receiver) वर्गे व्यावसायिकतर्कस्य भागः भवति । प्रायः कोऽपि वस्तु ग्राहकरूपेण कार्यं कर्तुं शक्नोति । अधिकांशः आदेशः केवलं ग्राहकाय अनुरोधं कथं प्रसारयितव्यम् इति विवरणं सम्बद्धं भवति, प्राप्तकर्ता च स्वयं वास्तविकं कार्यं करिष्यति ।
  5. ग्राहिका (Client) विशिष्टानि आदेशवस्तूनि निर्माय विन्यस्यति । क्लायन्ट् इत्यनेन ग्राहकसत्ता सहितं सर्वाणि अनुरोधमापदण्डानि आदेशस्य निर्मातारं प्रति पारितव्यानि । तदनन्तरं जनितः आदेशः एकेन वा अधिकेन प्रेषकेन सह सम्बद्धः भवितुम् अर्हति ।

आदेशविधानस्य सामान्यसङ्केतः : १.

//抽象接收者
public abstract class Receiver{
	public abstract void operation();
}

//具体接收者
public class Recevier1 extends Recevier{
	public void operation(){
		...
	}
}

//通用命令接口
public interface Command{
	void execute();
}

//具体命令类
public class ConcreteCommand1 implements Command{
	private Receiver receiver;
	
	public ConcreteCommand1(Receiver _receiver){
		 this.receiver = _receiver;
	}
	
	public void execute(){
		this.receiver.operation();
	}
}

//调用者类
public class Invoker{
	private Command command;
	
	public void setCommand(Command _command){
		this.command = _command;
	}
	
	public void executeCommand(){
		this.command.execute();
	}
	
}

//主程序类
public class Client{
	public static void main(String[] args){
		//调用者
		Invoker invoker = new Invoker();
		//接收者
		Receiver receiver1 = new Receiver1();
		//定义一个命令
		Command command = new ConcreteCommand1(receiver1);
		
		invoker.setCommand(command);
		invoker.executeCommand();
	}
}