GithubHelp home page GithubHelp logo

laba3's Introduction

laba3

Structure

  • the root folder acts as a folder for the IntelliJ IDEA project.
  • UML folder contains .drawio, .svg, and .png files of the UML diagram of the project. .svg and .png variations are also displayed below.
  • text.md containts the given text for completing the task.

SVG Diagram

UML diagram svg

PNG Diagram

UML diagram png

laba3's People

Contributors

sat1l avatar

Watchers

 avatar

laba3's Issues

Review

Ask.java

public void ask(Person whoAsks, Person whoGetsAsked, String phrase, Interest whoAsksInterest){
whoAsks.addDoing(this);
System.out.println(whoAsks.getName() + " asks " + whoGetsAsked.getName() + " " + phrase + " with " + whoAsksInterest.toString());
whoAsks.removeDoing(this);
}

Предполагается, что вопрос задается с каким то интересом, но если на вход поступит аргумент пустой строка или вовсе null, стоит обработать возможные сценарии

FindItem.java

System.out.println(person.getName() + " searches for " + UObjectToFind.getName() + " on/in a " + somethingWithInventory.getName());

Небольшая странность по логике вывода. Программа оповещает о поиске только при повторной попытке это сделать.

DrinkAlco.java

Есть открытая возможность подать в качестве аргумента любой напиток, и тогда персонаж опьянеет от воды или сока. Нужно закрыть эту возможность доп проверкой

EatSedative.java

private UObject hasSedative(Person person){
UObject toret = null;
for (UObject item : person.getInventory()) {
if (item.getName().equalsIgnoreCase("sedative")) {
toret = item;
break;
}
}

Программа ищет нужный предмет для поедания, ориентируясь на наименование. Стоит вынести обезболивающие в отдельный класс Sedative и "принимать в употребление" только обьекты этого класса

Review 1

Naming Conventions

Названия всех enum и интерфейсов должны именоваться по тем же правилам, что и классы. Здесь же все названия enums капсом и есть интерфейсы, начинающиеся с маленькой буквы (hasOccasion, hasAlcohol)

(Мнение) Один из классов назван с использованием транслита, выглядит странно

public class NewTuchi extends Action {

Ненужные методы

Для чего нужен метод getLocname(), если ниже переопределен метод toString(), который позволяет убрать из кода лишние вызовы методов.

public String getLocname(){
return locname;
}

@Override
public String toString(){
return locname;
}

Работа метода bringTogether()

(Мнение)Странно, что проверяется, что только мужчина может приносить какие-либо предметы

public void bringTogether(Couple couple, UObject UObject, Location location){
if (couple.getHusband().getInventory().contains(UObject)){ //yes they bring thing as a couple but actually the man carries the thing

Метод drinkAlco()

Было бы хорошо добавить проверку соответствия локации человека локации того, что он будет пить

public void drinkAlco(Person person, Beverage beverage, AMOUNT amount){

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.