工厂模式是简单工厂模式的优化版,其多了一个创建对象的接口,利用新建一个类来实现创建一个对象,而简单工厂模式直接新建一个类创建所有对象
现有一个图书信息系统需要构造多种不同权限的用户,若当前需要构建一个图书管理员、借书管理员和拥有查询权力的用户,请用简单工厂模式和工厂方法模式设计并编码实现一个产生图书管理员、借书管理员和用户的程序。
简单工厂方法:
public interface Libraryman {
public abstract void man();
}
public class Librarian implements Libraryman {
public void man() {
System.out.println("图书管理员");
}
}
public class Libraryuser implements Libraryman {
public void man() {
System.out.println("拥有查询权力的用户");
}
}
public class Librarianborrow implements Libraryman {
public void man() {
System.out.println("借书管理员");
}
}
public class Newman {
public static Librarian newLibrarian() {
return new Librarian();
}
public static Librarianborrow newLibrarianborrow() {
return new Librarianborrow();
}
public static Libraryuser newLibraryuser() {
return new Libraryuser();
}
}
public class LibraryDemo {
public static void main(String[] args) {
Newman.newLibrarian().man();
Newman.newLibrarianborrow().man();
Newman.newLibraryuser().man();
}
}
工厂方法:
public interface Libraryman {
public abstract void man();
}
public class Libraryuser implements Libraryman {
public void man() {
System.out.println("拥有查询权力的用户");
}
}
public class Librarian implements Libraryman {
public void man() {
System.out.println("图书管理员");
}
}
public class Librarianborrow implements Libraryman {
public void man() {
System.out.println("借书管理员");
}
}
public interface NewLibrary {
public abstract Libraryman newman();
}
public class newLibrarian implements NewLibrary {
public Libraryman newman() {
return new Librarian();
}
}
public class newLibraryuser implements NewLibrary {
public Libraryman newman() {
return new Libraryuser();
}
}
public class newLibraryborrow implements NewLibrary {
public Libraryman newman() {
return new Librarianborrow();
}
}
public class LibraryDemo {
public static void main(String[] args) {
newLibrarian a=new newLibrarian();
a.newman().man();
newLibraryborrow aa=new newLibraryborrow();
aa.newman().man();
newLibraryuser aaa=new newLibraryuser();
aaa.newman().man();
}
}