Skip to content

apwinter2020/Asteroids

Repository files navigation

Asteroids

This code sample is made to serve as well designed, good and clean coded game in java for students of Advanced Programming of Sharif University of Technology.

Design Patterns

The code has implemented the following design patterns

There might also be some minor implementations of other design patterns.

Design

While creating the project the following principals were considered:

  1. A class should have one and only one reason to change, meaning that a class should have only one job.
  2. Objects or entities should be open for extension, but closed for modification.
  3. Let q(x) be a property provable about objects of x of type T. Then q(y) should be provable for objects y of type S where S is a subtype of T.
  4. A client should never be forced to implement an interface that it doesn't use or clients shouldn't be forced to depend on methods they do not use.
  5. Entities must depend on abstractions not on concretions. It states that the high level module must not depend on the low level module, but they should depend on abstractions.

These five principals are called the S.O.L.I.D principles of object oriented design.

Bring the parameters of the program outside the code by using config loaders. It decouples the dependency of the code and its parameters and makes the customization of the program without compilation more convenient for the users and developers. In addition it packs up the related parameters inside some related config files to be accessed faster.

UML

Here is the uml of the game.

you can learn about uml's here

Contributors

  • Hossein Boomeri
  • Seyed Alireza Khadem
  • Sahel Mesforoush
  • Farzin Nasiri

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages