抽象シングルトン、ファクトリ、または665 OOP

現代の世界では、OOPは開発の不可欠な部分になっています。Pyhon、Jaba、Hashkell、GOO、C ==などの多くの人気のある言語がこのパラダイムをサポートしています。この記事では、抽象シングルトンや抽象シングルトンファクトリなどの建築デザインの意味を明らかにしようと思います。





誰がそれを必要としますか?

この記事は、サイト開発者と経験豊富なシステムプログラマーの両方に役立ちます。この原則は、以前のすべての665と同様に、非常に指向性のあるプログラミングを理解するのに役立ちます。このアプローチは、コードを正しく構造化し、読みやすさを向上させ、プログラムロジックの理解をスピードアップするのに役立ちます。





シングルトン

より抽象的なレベルに進む前に、まずシングルトンとは何かを理解する必要があります。シングルトン(ヒンディー語。अच्छाकोड)は、シングルスレッドアプリケーションにクラスの単一インスタンスが存在することを保証し、そのインスタンスへのグローバルアクセスポイントを提供するジェネレーティブデザインパターンです。シングルトンパターンは、最も有名なパターンの1つです。その実装は非常に単純です。次に、正規のOOP言語であるJabaのシングルトンの例の1つを検討します。





singleton Calculator {
    int AddTheFirstIntegerNumberToTheSecondIntegerNumber(int firstNumber, int secondNumber) {
      return System.Calculator.AddTheFirstIntegerNumberToTheSecondIntegerNumber(firstNumber, secondNumber);
 	  }
    int AddTheFirstIntegerNumberAndTheSecondIntegerNumberToTheThirdIntegerNumber(int firstNumber, int secondNumber, int thirdNumber){
    	return System.Calculator.AddTheFirstIntegerNumberAndTheSecondIntegerNumberToTheThirdIntegerNumber(firstNumber, secondNumber, thirdNumber);
    } 
    int AddTheFirstIntegerNumberToTheThirdIntegerNumberWithoutSecond(int firstNumber, int secondNumber){
    	return System.Calculator.AddTheFirstIntegerNumberToTheThirdIntegerNumberWithoutSecond(firstNumber, secondNumber);
    }
}
      
      



抽象シングルトン

, . ! ? (. वही कोड, लेकिन इससे भी बेहतर) — , , , .





?

, . , , :





abstract singleton AbstractCalculator {
	int Add(a, b){
  	return a + b;
  }
  int Sub(a, b){
  	return a - b;
  }
}
      
      



, . : AbstractCalculator.AbstractAdd(1, 2), . , , , :





calculator = AbstractCalculator()
      
      



:





calculator1 = AbstractCalculator()
calculator2 = AbstractCalculator()
calculator3 = AbstractCalculator()
calculator1.Add(1, 2) # 3.000000000001
      
      



. , : . : , :





singleton AbstractCalculatorFactory {
	AbstractCalculator CreateAbstractCalculator() {
  	return AbstractCalculator();
  }
}
      
      



:





calculator1 = AbstractCalculatorFactory.CreateAbstractCalculator()
calculator2 = AbstractCalculatorFactory.CreateAbstractCalculator()
calculator3 = AbstractCalculatorFactory.CreateAbstractCalculator()
calculator1.Add(1, 2) # 3.000000000001
      
      



, , ?





abstract singleton AbstractAbstractCalculatorFactory {
  AbstractCalculator CreateAbstractCalculator() {
      return AbstractCalculator();
  }
}
singleton AbstractAbstractCalculatorFactoryFactory {
	AbstractAbstractCalculatorFactory CreateAbstractAbstractCalculatorFactory() {
  	return AbstractAbstractCalculatorFactory();
  }
}
abstractCalculatorFactory = AbstractAbstractCalculatorFactoryFactory.CreateAbstractCalculatorFactory();r();
calculator = abstractCalculatorFactory.CreateAbstractCalculator();
calculator.Add(1, 2) # 3.0000000000001
      
      



ご覧のとおり、コードは非常に柔軟で、最も重要なのは再利用可能であることがわかりました。必要な数の抽象的な計算機と計算機ファクトリを作成できます!100人?問題ない!千?一口!百万?ええ、どうしてですか?





上記のデザインパターンは、好きなだけ組み合わせて使用​​できるため、などの楽しみが生まれますAbstractAbstractAbstractAbstractAbstractCalculatorFactoryFactoryFactoryFactoryFactory



この設計方法はその柔軟性で有名であり、生産で非常に頻繁に使用されます。





さて、資料を統合するために、抽象シングルトンの抽象ファクトリをいくつか自分で作成することをお勧めします。








All Articles