Plain Old Java Object
In software engineering, a plain old Java object (POJO) is an ordinary Java object, not bound by any special restriction. The term was coined by Martin Fowler, Rebecca Parsons and Josh MacKenzie in September 2000: The term "POJO" initially denoted a Java object which does not follow any of the major Java object models, conventions, or frameworks. It has since gained adoption as a language-agnostic term, because of the need for a common and easily understood term that contrasts with complicated object frameworks. The term continues an acronym pattern to coin retronyms for constructs that do not use fancy new features: * "Plain old JavaScript object" in JavaScript * "Plain old Ruby object" (PORO) in Ruby * "Plain old Documentation" (pod) in Perl * Plain old CLR object (POCO) in the .NET Framework * "Plain old PHP object" (POPO) in PHP * Plain old telephone service (POTS) in telephony Definition Ideally speaking, a POJO is a Java object not bound by any restriction other t ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
Software Engineering
Software engineering is a branch of both computer science and engineering focused on designing, developing, testing, and maintaining Application software, software applications. It involves applying engineering design process, engineering principles and computer programming expertise to develop software systems that meet user needs. The terms ''programmer'' and ''coder'' overlap ''software engineer'', but they imply only the construction aspect of a typical software engineer workload. A software engineer applies a software development process, which involves defining, Implementation, implementing, Software testing, testing, Project management, managing, and Software maintenance, maintaining software systems, as well as developing the software development process itself. History Beginning in the 1960s, software engineering was recognized as a separate field of engineering. The development of software engineering was seen as a struggle. Problems included software that was over ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
Mutator Method
In computer science, a mutator method is a method used to control changes to a variable. They are also widely known as setter methods. Often a setter is accompanied by a getter, which returns the value of the private member variable. They are also known collectively as accessors. The mutator method is most often used in object-oriented programming, in keeping with the principle of encapsulation. According to this principle, member variables of a class are made private to hide and protect them from other code, and can only be modified by a public member function (the mutator method), which takes the desired new value as a parameter, optionally validates it, and modifies the private member variable. Mutator methods can be compared to assignment operator overloading but they typically appear at different levels of the object hierarchy. Mutator methods may also be used in non-object-oriented environments. In this case, a reference to the variable to be modified is passed to the mut ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
Anemic Domain Model
The anemic domain model is described as a programming anti-pattern where the domain objects contain little or no business logic like validations, calculations, rules, and so forth. The business logic is thus baked into the architecture of the program itself, making refactoring and maintenance more difficult and time-consuming. Overview This anti-pattern was first described by Martin Fowler, who considers the practice an anti-pattern. He says: In an anemic domain design, business logic is typically implemented in separate classes which transform the state of the domain objects. Fowler calls such external classes ''transaction scripts''. This pattern is a common approach in Java applications, possibly encouraged by technologies such as early versions of EJB's Entity Beans, as well as in .NET applications following the Three-Layered Services Application architecture where such objects fall into the category of "Business Entities" (although Business Entities can also contain behavi ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
Data Transfer Object
In the field of programming a data transfer object (DTOMSDN (2010). Data Transfer Object. Microsoft MSDN Library. Retrieved from https://msdn.microsoft.com/en-us/library/ms978717.aspx.Fowler, Martin (2010). Data Transfer Object. Patterns of Enterprise Application Architecture. Retrieved from http://martinfowler.com/eaaCatalog/dataTransferObject.html.) is an object that carries data between processes. The motivation for its use is that communication between processes is usually done resorting to remote interfaces (e.g., web services), where each call is an expensive operation. Because the majority of the cost of each call is related to the round-trip time between the client and the server, one way of reducing the number of calls is to use an object (the DTO) that aggregates the data that would have been transferred by the several calls, but that is served by one call only. The difference between data transfer objects and business objects or data access objects is that a DTO does no ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
Interface (Java)
An interface in the Java programming language is an abstract type that is used to declare a behavior that classes must implement. They are similar to protocols. Interfaces are declared using the interface keyword, and may only contain method signature and constant declarations (variable declarations that are declared to be both static and final). All methods of an Interface do not contain implementation (method bodies) as of all versions below Java 8. Starting with Java 8, default and static methods may have implementation in the interface definition. Then, in Java 9, private and private static methods were added. At present, a Java interface can have up to six different types. Interfaces cannot be instantiated, but rather are implemented. A class that implements an interface must implement all of the non-default methods described in the interface, or be an abstract class. Object references in Java may be specified to be of an interface type; in each case, they must either be ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
Hibernate (Java)
Hibernate ORM (or simply Hibernate) is an object–relational mapping tool for the Java programming language. It provides a framework for mapping an object-oriented domain model to a relational database. Hibernate handles object–relational impedance mismatch problems by replacing direct, persistent database accesses with high-level object handling functions. Hibernate is free software that is distributed under the Apache License. Versions prior to 7.0.0.Beta4 were distributed under the GNU Lesser General Public License 2.1. Hibernate's primary feature is mapping from Java classes to database tables, and mapping from Java data types to SQL data types. Hibernate also provides data query and retrieval facilities. It generates SQL calls and relieves the developer from the manual handling and object conversion of the result set. Mapping The mapping of Java classes to database tables is implemented by the configuration of an XML file or by using Java Annotations. When using an ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
Java Persistence API
Jakarta Persistence, also known as JPA (abbreviated from the former name Java Persistence API) is a Jakarta EE application programming interface specification that describes the management of relational data in enterprise Java applications. Persistence in this context covers three areas: * The API itself, defined in the package ( for Jakarta EE 8 and below) * The Jakarta Persistence Query Language (JPQL; formerly Java Persistence Query Language) * Object/relational metadata History The final release date of the JPA 1.0 specification was 11 May 2006 as part of Java Community Process JSR 220. The JPA 2.0 specification was released 10 December 2009 (the Java EE 6 platform requires JPA 2.0). The JPA 2.1 specification was released 22 April 2013 (the Java EE 7 platform requires JPA 2.1). The JPA 2.2 specification was released in the summer of 2017. The reference implementation for JPA 1 and 2 was EclipseLink. Jakarta Persistence 3.1 was released in the spring of 2022 as part of ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
Enterprise JavaBeans
Jakarta Enterprise Beans (EJB; formerly Enterprise JavaBeans) is one of several Java APIs for modular construction of enterprise software. EJB is a server-side software component that encapsulates business logic of an application. An EJB web container provides a runtime environment for web related software components, including computer security, Java servlet lifecycle management, transaction processing, and other web services. The EJB specification is a subset of the Jakarta EE specification. Specification The EJB specification was originally developed in 1997 by IBM and later adopted by Sun Microsystems (EJB 1.0 and 1.1) in 1999 and enhanced under the Java Community Process aJSR 19(EJB 2.0)JSR 153(EJB 2.1)JSR 220(EJB 3.0)JSR 318(EJB 3.1) anJSR 345(EJB 3.2). The EJB specification provides a standard way to implement the server-side (also called " back-end") 'business' software typically found in enterprise applications (as opposed to 'front-end' user interface software ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
![]() |
Spring Framework
The Spring Framework is an application framework and inversion of control container for the Java platform. The framework's core features can be used by any Java application, but there are extensions for building web applications on top of the Java EE (Enterprise Edition) platform. The framework does not impose any specific programming model.. The framework has become popular in the Java community as an addition to the Enterprise JavaBeans (EJB) model. The Spring Framework is free and open source software. Version history The first version was written by Rod Johnson, who released the framework with the publication of his book ''Expert One-on-One J2EE Design and Development'' in October 2002. The framework was first released under the Apache 2.0 license in June 2003. The first production release, 1.0, was released in March 2004. The Spring 1.2.6 framework won a Jolt productivity award and a JAX Innovation Award in 2006. Spring 2.0 was released in October 2006, Spring 2.5 in N ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
Aspect-oriented Programming
In computing, aspect-oriented programming (AOP) is a programming paradigm that aims to increase modularity by allowing the separation of cross-cutting concerns. It does so by adding behavior to existing code (an advice) ''without'' modifying the code, instead separately specifying which code is modified via a " pointcut" specification, such as "log all function calls when the function's name begins with 'set. This allows behaviors that are not central to the business logic (such as logging) to be added to a program without cluttering the code of core functions. AOP includes programming methods and tools that support the modularization of concerns at the level of the source code, while aspect-oriented software development refers to a whole engineering discipline. Aspect-oriented programming entails breaking down program logic into cohesive areas of functionality (so-called ''concerns''). Nearly all programming paradigms support some level of grouping and encapsulation of conce ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
Business Logic
In computer software, business logic or domain logic is the part of the program that encodes the real-world business rules that determine how data can be created, stored, and changed. It is contrasted with the remainder of the software that might be concerned with lower-level details of managing a database or displaying the user interface, system infrastructure, or generally connecting various parts of the program. Details and example Business logic: * Prescribes how business objects interact with one another * Enforces the routes and the methods by which business objects are accessed and updated Business rules: * Model real-life business objects (such as accounts, loans, itineraries, and inventories) Business logic comprises: * Workflows that are the ordered tasks of passing documents or data from one participant (a person or a software system) to another. Business logic should be distinguished from business rules. Business logic is the portion of an enterprise system which ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
Boilerplate Code
In computer programming, boilerplate code, or simply boilerplate, are sections of code that are repeated in multiple places with little to no variation. When using languages that are considered ''verbose'', the programmer must write a lot of boilerplate code to accomplish only minor functionality. The need for boilerplate can be reduced through high-level mechanisms such as metaprogramming (which has the computer automatically write the needed boilerplate code or insert it at compile time), convention over configuration (which provides good default values, reducing the need to specify program details in every project) and model-driven engineering (which uses models and model-to-code generators, eliminating the need for manual boilerplate code). It is also possible to move boilerplate code to an '' abstract class'' so that it can be inherited by any number of '' concrete classes''. Another option would be to move it into a subroutine so that it can be called instead of being du ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |