「java设计dsl」Java设计模式工厂模式
本篇文章给大家谈谈java设计dsl,以及Java设计模式工厂模式对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
java程序设计
其实这个就是关系映射的基础拉,2个POJO类,当然代码可以让计算机自动生成的
import java.io.Serializable;
import java.util.*;
public class Student implements Serializable{
private Long id;
private String name;
private int age;
private Set courses=new HashSet();
public Student(String name, int age, Set courses) {
super();
// TODO Auto-generated constructor stub
this.name = name;
this.age = age;
this.courses = courses;
}
public Student(){
}
public Student(String name, int age) {
super();
// TODO Auto-generated constructor stub
this.name = name;
this.age = age;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "id "+id+" name "+name+" age "+age;
}
public Set getCourses() {
return courses;
}
public void setCourses(Set courses) {
this.courses = courses;
}
}
import java.io.Serializable;
public class Course implements Serializable{
private Long id;
private String couseName;
private int score;
private Student student;
public Course(String couseName, int score) {
super();
// TODO Auto-generated constructor stub
this.couseName = couseName;
this.score = score;
}
public Course(){
}
@Override
public String toString() {
// TODO Auto-generated method stub
return " id "+id+" courseName "+couseName+" score = "+score;
}
public String getCouseName() {
return couseName;
}
public void setCouseName(String couseName) {
this.couseName = couseName;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public Student getStudent() {
return student;
}
public void setStudent(Student student) {
this.student = student;
}
}
学生和课程是一对多的关系啊,你学了JDBC或者是Hibernate就会明白地
java六大设计原则?
1、单一职责原则
不要存在多于一个导致类变更的原因,也就是说每个类应该实现单一的职责,如若不然,就应该把类拆分。
2、里氏替换原则(Liskov Substitution Principle)
里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。
里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。
LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。——
From Baidu 百科
历史替换原则中,子类对父类的方法尽量不要重写和重载。因为父类代表了定义好的结构,通过这个规范的接口与外界交互,子类不应该随便破坏它。
3、依赖倒转原则(Dependence Inversion Principle)
这个是开闭原则的基础,具体内容:面向接口编程,依赖于抽象而不依赖于具体。写代码时用到具体类时,不与具体类交互,而与具体类的上层接口交互。
4、接口隔离原则(Interface Segregation Principle)
这个原则的意思是:每个接口中不存在子类用不到却必须实现的方法,如果不然,就要将接口拆分。使用多个隔离的接口,比使用单个接口(多个接口方法集合到一个的接口)要好。
5、迪米特法则(最少知道原则)(Demeter Principle)
就是说:一个类对自己依赖的类知道的越少越好。也就是说无论被依赖的类多么复杂,都应该将逻辑封装在方法的内部,通过public方法提供给外部。这样当被依赖的类变化时,才能最小的影响该类。
最少知道原则的另一个表达方式是:只与直接的朋友通信。类之间只要有耦合关系,就叫朋友关系。耦合分为依赖、关联、聚合、组合等。我们称出现为成员变量、方法参数、方法返回值中的类为直接朋友。局部变量、临时变量则不是直接的朋友。我们要求陌生的类不要作为局部变量出现在类中。
6、合成复用原则(Composite Reuse Principle)
原则是尽量首先使用合成/聚合的方式,而不是使用继承。
北大青鸟设计培训:java中自动化构建工具?
一个大型的java项目的开发往往需要加载很多的各式各样的第三方jar包依赖,这时就需要专门工具来维护这些繁杂的jar包,否则各个jar包的版本问题,依赖问题会让你头很大,当多个团队协作开发时,项目的标准框架配置也需要能够快速在不同团队之间复制,另外项目从创建、开发、测试、发布的整个项目生命周期也需要专门的工具来维护。
自动化构建工具就是为了解决以上这些问题的。
目前比较主流的自动化构建工具主要有:Maven、gradle、Ant等。
其中Ant已经走下坡路,除了维护以前的老项目以外,已经基本没有公司用了。
过去几年中Maven已经成为java项目的事实构建工具,没有之一。
而近两年Gradle获得越来越多的人使用,分走了不少Maven的用户。
在这我们主要了解一下Maven和gradle。
MavenMaven是一个采用纯Java编写的开源项目管理工具。
它包含了一组标准集合,一个项目生命周期(ProjectLifecycle),一个依赖管理系统(DependencyManagementSystem),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。
Maven采用了一种被称之为projectobjectmodel(POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中,通过该文件,Maven可以管理项目的整个生命周期,包括编译,构建,测试,发布,报告等等。
gradleGradle是一个基于ApacheAnt和ApacheMaven概念的项目自动化建构工具。
它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。
面向Java应用为主。
当前其支持的语言限于Java、Groovy和Scala,计划未来将支持更多的语言。
和Maven一样,Gradle只是提供了构建项目的一个框架,真正起作用的是Plugin。
Gradle在默认情况下为我们提供了许多常用的Plugin,其中包括有构建Java项目的Plugin,还有War,Ear等。
南宁电脑培训发现与Maven不同的是,Gradle不提供内建的项目生命周期管理,只是javaPlugin向Project中添加了许多Task,这些Task依次执行,为我们营造了一种如同Maven般项目构建周期。
java设计dsl的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于Java设计模式工厂模式、java设计dsl的信息别忘了在本站进行查找喔。
发布于:2022-12-17,除非注明,否则均为
原创文章,转载请注明出处。