joined_document
.pdfПример зависимости
package com.shop.logic; import com.shop.entity.Test;
public class SomeClass {
public String doSomething(Test test) {
/* реализация */
}
}
Пример зависимости
package com.shop.logic;
import com.shop.entity.Test;
public class SomeClass {
public Test doSomething(String value) {
/* реализация */
}
}
4
Пример слабой зависимости
package com.shop.logic;
import com.shop.entity.Test; import com.shop.entity.Student;
public class SomeClass {
public Student doSomething(String fileName) { Test test = new Test();
Student student = new Student(); student.setTest(test);
return student;
}
}
Направленность ассоциаций
package com.library.entity;
public class Cover extends Entity { private String name;
private Integer useTerm;
// private int useTerm;
}
5
Направленность ассоциаций
package com.library.entity;
public class Book extends Entity { private String title; private String author; private Cover cover;
}
Направленность ассоциаций
package com.library.entity;
public class Cover extends Entity { private String name;
private Integer useTerm; private List<Book> books;
// private ArrayList<Book> books;
}
6
Множественность ассоциаций
package com.university.entity;
public class Course extends Entity { private String name;
private Teacher teacher; private List<Student> students;
}
Множественность ассоциаций
package com.university.entity;
public class Student extends Entity { private String surname; private Group group;
private List<Course> courses;
}
7
Автоматизация сборки проекта
Инструменты автоматизации сборки проектов
make
Apache Ant
Apache Maven
1
Apache Ant. Понятия
Цель (target)
Задача (task)
Работа с файловой системой (mkdir, copy, delete)
Задачи для разработки на Java (javac, jar, javadoc)
Работа с базами данных
Задачи для J2EE
Запуск утилиты Ant
ant
ant clean
ant –buildfile alternative-build.xml
ant –buildfile alternative-build.xml clean ant clean init-database run
2
Build-файл
<?xml version="1.0" encoding="UTF-8"?>
<project name="Library" basedir="." default="Run">
<!-- описание целей и задач -->
</project>
Build-файл
<?xml version="1.0" encoding="UTF-8"?>
<project name="Library" basedir="." default="Run">
<target name="Clean"> <delete dir="build"/>
</target>
</project>
3
Build-файл
<target name="Clean"> <delete dir="build"/>
</target>
<target name="Initialize" depends="Clean"> <mkdir dir="build"/>
<mkdir dir="build/web"/>
<mkdir dir="build/web/WEB-INF"/>
<mkdir dir="build/web/WEB-INF/classes"/> <mkdir dir="build/web/WEB-INF/lib"/> <copy todir="build/web">
<fileset dir="web"/> </copy>
</target>
Build-файл. Работа с БД
<target name="Start MySQL">
<exec executable="../../mysql/bin/mysqld.exe" spawn="true">
<arg value="--standalone"/> </exec>
</target>
4
Build-файл. Работа с БД
<target name="Stop MySQL"> <exec
executable="../../mysql/bin/mysqladmin.exe"> <arg value="--user=root"/>
<arg value="--password=root"/> <arg value="shutdown"/>
</exec>
</target>
Build-файл. Работа с БД
<target name="Init data base" description="БД"> <sql driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306? encoding=UTF-8& useUnicode=true&
characterEncoding=UTF-8"
userid="root" password="root" encoding="utf8">
<!– указание SQL-запросов -->
</sql>
</target>
5
Build-файл. Работа с БД
<target name="Init data base" description="БД"> <sql ...>
<classpath>
<pathelement
location="web/WEB-INF/lib/ mysql-connector-java-5.1.17-bin.jar"/>
</classpath>
<fileset dir="sql" includes="*.sql"/> </sql>
</target>
Build-файл. Работа с БД
<target name="Init data base" description="БД"> <sql ...>
<classpath>
<pathelement
location="web/WEB-INF/lib/ mysql-connector-java-5.1.17-bin.jar"/>
</classpath>
<sort>
<fileset dir="sql" includes="*.sql"/> </sort>
</sql>
</target>
6