| CORBA | Common Object Reqeust Broker Architecture. Standard, which defines communication between software, written in different languages. Uses object oriented approach. |
| Incremental | Build after each commit |
| Nightly | Build every night |
| Baseline | Build, according to a cadence / milestone. Will probably be released. |
- Design Patterns aus GOF
- MVC
- API: HAL, HATEOAS, REST
Hypermedia As The Engine Of The Aookication State
- REST GET - safe, idempotent PUT POST - Idempotent DELETE - Idempotent PATCH
See https://stackify.com/soap-vs-rest/
* Java RMI
* RMI you can have references to remote objects and invoke their methods
RMI stands out when the need to develop something more complex than a pure client-server architecture arises
* Java RPC
* With RPC you can just call remote functions exported into a server,In Java, when you talk about RPC, you are talking about SOAP and Web Services.
* Lost its popularity, REST is the solution of choice.
* SOAP - "Simple Object Access Protocol"
* If you need ACID-compliant transactions, SOAP is the way to go.
- CORBA
-Common Object Request Broker Architecture
* REST - Representational state transfer. The general consensus among experts these days is that REST is the typically preferred protocol unless there’s a compelling reason to use SOAP
* REST allows a greater variety of data formats, whereas SOAP only allows XML.
* Simple
* uses HTTP layer
* architecture principles
* SOLID
* Single-responsibiity Principle
* Open-Cosed
* Liskov substitution principles
* Interface segregation principle
* client should NOT implement interfaces / methods they dont use
* Dependency Inversion principle
-
- 4+1 View: https://de.wikipedia.org/wiki/4%2B1_Sichtenmodell
Polymorphism in Java has two types:
Runtime polymorphism (dynamic binding) and Compile time polymorphism (static binding).
Method overriding is an example of dynamic polymorphism, while method overloading is an example of static polymorphism.
Binding: association of method definition to the method call.
Static binding: The binding of static, private and final methods. These methods cannot be overridden, type of class is determined at compile time.
Dynamic binding: Determined at run time. Methods are not static, private, nor final.
class Dog {
public void bark(){
System.out.println("dog bark");
}
}
class Hound extends Dog {
public void bark(){
System.out.println("hound bark");
}
}
public class OverridingTest1 {
public static void main(String [] args){
Dog dog = new Dog(); // var of type dog resolves method bark at runtime
dog.bark(); // dog bark
}
}
public class OverridingTest2 {
public static void main(String [] args){
Dog dog = new Hound(); // use Hound, where method bark is overridden
dog.bark(); // hound bark. var of type dog resolves method bark at runtime
}
}
Method overriding is an example of dynamic polymorphism.
Method overriding, in object-oriented programming, is a language feature that allows a subclass or child class to provide a specific implementation of a method that is already provided by one of its superclasses or parent classes.
class Dog {
public void bark(){
System.out.println("dog bark");
}
}
class Hound extends Dog {
public void bark(){
System.out.println("hound bark");
}
}
Method overloading is an example of static polymorphism.
Method overloading in java is a feature that allows a class to have more than one method with the same name, but with different parameters
public void Square ( int number )
{
int square = number * number;
System.out.printIn(“Method with Integer Argument Called:“+square);
}
public void Square(double number)
{
double square = number * number;
System.out.printIn(“Method with double Argument Called:“+square);
}
public void Square(long number)
{
long square = number * number;
System.out.printIn(“Method with long Argument Called:“+square);
}
Exlained with Python
by re-implementing “await” with scheduler
https://www.heise.de/hintergrund/Asynchrones-Programmieren-async-minus-await-7527129.html