what is meant by Business,System,Interface,Persistence classes? Explain me with some examples?
Business could be the part of your application where all the functional part happens (ie computations or rules)
System is your OS
Interface, thats a contract in Java POO -> see java for beginners and stuff like that
Persistence is the part of your application where all the database communication part happens (ie sql requests)
Business: the core part of an application, usually called the business layer. It's what differentiates one application from another. For example if you have an application which performs accounting stuff, the business layer would contain classes like
Account
orEndOfMonthJob
. That's called the business, in contrast to technical logging or the login form, which are not part of the business layer. Perhaps a better term would be Domain-specific componentsSystem: This is either as simple as the underlying software system (such as the operating system or an application server) or the software you're building or the system as a whole, which might also reference to complex set ups like a cloud hosting environment with all the hardware included. The term 'system' is too generic, but it usually is either the OS or the software system you're building.
Interface: An interface is either a technical interface definition for interoperability (either within the same software, see Java interfaces) or interfaces for remote systems (see WebService interfaces), which can be seen as a contract between two units - or an interface is a Human-Machine-Interface (also known as User Interface, Graphical User Interface), which is just the frontend of an application so a human being (aka user) can see and use it.
Persistence: Whenever an application has to keep state between runs, it needs to store its state (e.g. the data a user has entered) somewhere, so it can load it on the next run. The persistence layer of an application contains modules to deal with persisting the state of an application, most often the domain objects, to storages. Such storages are often database systems, but they can also be specialized storages or very simple ones like .ini files, .xml files or the registry (although i would not consider this to be 'persistence'). In case of enterprise applications, the term Data Access Layer is a synonym for Persistence Layer