欢迎光临
我们一直在努力

知识付费源码|知识付费网站搭建|知识付费小程序源码

设计一个在线教育知识付费源码系统(面向对象设计)。

解决方案:假设我们想要设计一个基本的内容付费阅读系统并带小程序,提供以下功能:

•查找知识数据库并阅读付费内容;

•用户成员的创建和扩展;

•基于用户分级权限管理,并且这个用户只能获权后阅读。

仓库完整源码:zs.xcxyms.top

类OnlineReaderSystem代表程序的主体。我们可以实现这个类,让它存储有关所有涉及用户管理的权限分级的信息,并刷新显示,但这会使这个类变得相当庞大。相反,我们选择将这些组件拆分成Library、userManager和Display类。

类:

1、用户

2、知识

3、UserManager

4、OnlineReaderSystem

知识付费源码|知识付费网站搭建|知识付费小程序源码

代码如下:

 import java.util.HashMap; /* * This class represents the system */ class OnlineReaderSystem { private Library library; private UserManager userManager; private Display display; private book activeBook; private User activeUser; public OnlineReaderSystem() { userManager = new UserManager(); library = new Library(); display = new Display(); } public Library getLibrary() { return library; } public UserManager getUserManager() { return userManager; } public Display getDisplay() { return display; } public Book getActiveBook() { return activeBook; } public void setActiveBook(Book book) { activeBook = book; display.displayBook(book); } public User getActiveUser() { return activeUser; } public void setActiveUser(User user) { activeUser = user; display.displayUser(user); } } /* * We then implement separate classes to handle the user * manager, the library, and the display components */ /* * This class represents the Library which is responsible * for storing and searching the books. */ class Library { private HashMap<Integer, Book> books; public Library() { books = new HashMap<Integer, Book>(); } public Boolean addBook(int id, String details, String title) { if (books.containsKey(id)) { return false; } Book book = new Book(id, details, title); books.put(id, book); return true; } public Boolean addBook(Book book) { if (books.containsKey(book.getId())) { return false; } books.put(book.getId(), book); return true; } public boolean remove(Book b) { return remove(b.getId()); } public boolean remove(int id) { if (!books.containsKey(id)) { return false; } books.remove(id); return true; } public Book find(int id) { return books.get(id); } } /* * This class represents the UserManager which is responsible * for managing the users, their membership etc. */ class UserManager { private HashMap<Integer, User> users; public UserManager() { users = new HashMap<Integer, User>(); } public Boolean addUser(int id, String details, String name) { if (users.containsKey(id)) { return false; } User user = new User(id, details, name); users.put(id, user); return true; } public Boolean addUser(User user) { if (users.containsKey(user.getId())) { return false; } users.put(user.getId(), user); return true; } public boolean remove(User u) { return remove(u.getId()); } public boolean remove(int id) { if (users.containsKey(id)) { return false; } users.remove(id); return true; } public User find(int id) { return users.get(id); } } /* * This class represents the Display, which is responsible * for displaying the book, it's pages and contents. It also * shows the current user. * It provides the method * turnPageForward, turnPageBackward, refreshPage etc. */ class Display { private Book activeBook; private User activeUser; private int pageNumber = 0; public void displayUser(User user) { activeUser = user; refreshUsername(); } public void displayBook(Book book) { pageNumber = 0; activeBook = book; refreshTitle(); refreshDetails(); refreshPage(); } public void turnPageForward() { pageNumber++; System.out.println("Turning forward to page no " + pageNumber + " of book having title " + activeBook.getTitle()); refreshPage(); } public void turnPageBackward() { pageNumber--; System.out.println("Turning backward to page no " + pageNumber + " of book having title " + activeBook.getTitle()); refreshPage(); } public void refreshUsername() { /* updates username display */ System.out.println("User name " + activeUser.getName() + " is refreshed"); } public void refreshTitle() { /* updates title display */ System.out.println("Title of the book " + activeBook.getTitle() + " refreshed"); } public void refreshDetails() { /* updates details display */ System.out.println("Details of the book " + activeBook.getTitle() + " refreshed"); } public void refreshPage() { /* updated page display */ System.out.println("Page no " + pageNumber + " refreshed"); } } /* * The classes for User and Book simply hold data and * provide little functionality. * This class represents the Book which is a simple POJO */ class Book { private int bookId; private String details; private String title; public Book(int id, String details, String title) { bookId = id; this.details = details; this.title = title; } public int getId() { return bookId; } public void setId(int id) { bookId = id; } public String getDetails() { return details; } public void setDetails(String details) { this.details = details; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } } /* * This class represents the User which is a simple POJO */ class User { private int userId; private String name; private String details; public void renewMembership() { } public User(int id, String details, String name) { this.userId = id; this.details = details; this.name = name; } public int getId() { return userId; } public void setId(int id) { userId = id; } public String getDetails() { return details; } public void setDetails(String details) { this.details = details; } public String getName() { return name; } public void setName(String name) { this.name = name; } } // This class is used to test the Application public class AppTest { public static void main(String[] args) { OnlineReaderSystem onlineReaderSystem = new OnlineReaderSystem(); Book dsBook = new Book(1, "It contains Data Structures", "Ds"); Book algoBook = new Book(2, "It contains Algorithms", "Algo"); onlineReaderSystem.getLibrary().addBook(dsBook); onlineReaderSystem.getLibrary().addBook(algoBook); User user1 = new User(1, " ", "Ram"); User user2 = new User(2, " ", "Gopal"); onlineReaderSystem.getUserManager().addUser(user1); onlineReaderSystem.getUserManager().addUser(user2); onlineReaderSystem.setActiveBook(algoBook); onlineReaderSystem.setActiveUser(user1); onlineReaderSystem.getDisplay().turnPageForward(); onlineReaderSystem.getDisplay().turnPageForward(); onlineReaderSystem.getDisplay().turnPageBackward(); } }

知识付费源码系统类图:聚合和多重性是设计类图时需要考虑的两个重要问题。让我们来详细了解一下。

知识付费源码|知识付费网站搭建|知识付费小程序源码

聚合,

聚合只是表示一种关系,其中一件事可以独立于其他事存在。它意味着在定义类时创建或组合不同的抽象。聚合表示为类图中关系的一部分。在下面的图中,我们可以看到聚合是由一个指向超类的菱形末端的边表示的。“图书管理系统”是由各种类组成的超类。

这些类是User、Book和Librarian。此外,对于“Account”类,“User”是一个超类。所有这些,共享一种关系,这些关系被称为聚合关系。

多重性,

多重性意味着一个类的元素数量与另一个类相关联。这些关系可以是一对一、多对多、多对一或一对多。用来表示我们使用的一个元素1,表示我们使用的零元素0,以及我们使用的许多元素*. 我们可以从图表中看到;许多用户与表示的许多书相关联*这表示多对多类型的关系。一个用户只有一个用1表示的帐户,这表示a一对一的类型的关系。

知识付费系统类图简单地描述了知识管理系统类的结构、属性、方法或操作、对象之间的关系。

  • 海报
海报图正在生成中...
赞(0) 打赏
声明:
1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。
2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。
3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。
4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
文章名称:《知识付费源码|知识付费网站搭建|知识付费小程序源码》
文章链接:https://www.456zj.com/31258.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址