Ocena składni nazewnictwa

0

Witam, niedawno zacząłem naukę javy napisałem kilka prostych programów ten służy do rejestracji pacjentów. Podajemy dane i program dodaje pacjenta do listy. Moja prośba jest następująca, jako że chce pisać w miarę przejrzysty kod proszę o ocenę mojej pracy nazywania zmiennych, używania klas itp chętnie przyjmę każdą krytyczną uwagę
pozdrawiam

 
import java.awt.Event;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class Register {

	private static ArrayList<Patient> list = new ArrayList<>();
	public static void main(String[] args) {
		
		MyFrame frame = new MyFrame("rejestracja");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
		
		
		
		
	}
	
	public static boolean addPatient(String aName,String aSName,int aPesel,int aDay,int aMonth,int aYear,String aTime,boolean aFirstTime)
	{
		list.add(new Patient(aName,aSName,aPesel,aDay,aMonth,aYear,aTime,aFirstTime));
		return true;
	}

}


class Person
{
	private String name;
	private String sName;
	public Person(String aName,String aSName)
	{
		this.name=aName;
		this.sName=aSName;
	}
	public String getName()
	{
		return this.name;
	}
	public String getSName()
	{
		return this.sName;
	}
}

class MyDate
{
	private int day;
	private int month;
	private int year;
	private String Time;
	
	public MyDate(int aDay,int aMonth,int aYear,String aTime)
	{
		this.day=aDay;
		this.month = aMonth;
		this.year = aYear;
		this.Time = aTime;
	}
	
	public String getDate()
	{
		return this.day + " " + this.month + " " + this.year + " " + this.Time;
	}
}

class Patient extends Person
{
	private int pesel;
	private MyDate date;
	private boolean firstTime;
	
	public Patient(String aName,String aSName,int aPesel,int aDay,int aMonth,int aYear,String aTime,boolean aFirstTime)
	{
		super(aName,aSName);
		this.pesel = aPesel;
		this.firstTime = aFirstTime;
		date = new MyDate(aDay,aMonth,aYear,aTime);
	}
	
	public String getInfo()
	{
		return getName() + " " + getSName() + " " + this.pesel + date.getDate() + " pierwszy raz: " + this.firstTime;
	}	
}




class MyFrame extends JFrame implements ActionListener
{
	private final int DEFAULT_HEIGHT=1000,DEFAULT_WIDTH=1800;
	private MyLabel nameLabel,snameLabel,peselLabel,dayLabel,monthLabel,yearLabel,timeLabel,firstTimeLabel;
	private MyTextField nameField,snameField,peselField,dayField,monthField,yearField,timeField;
	private MyCheckBox firstTimeBox;
	private MyButton registerButton;
	
	public MyFrame(String aName)
	{
		super(aName);
		setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);
		setLayout(null);
		
		nameField = new MyTextField(150,10);
		add(nameField);
		snameField = new MyTextField(150,40);
		add(snameField);
		peselField = new MyTextField(150,70);
		add(peselField);
		dayField = new MyTextField(150,100);
		add(dayField);
		monthField = new MyTextField(150,130);
		add(monthField);
		yearField = new MyTextField(150,160);
		add(yearField);
		timeField = new MyTextField(150,190);
		add(timeField);
		
		nameLabel = new MyLabel("imię",10,10);
		add(nameLabel);
		snameLabel = new MyLabel("nazwisko",10,40);
		add(snameLabel);
		peselLabel = new MyLabel("pesel",10,70);
		add(peselLabel);
		dayLabel = new MyLabel("dzien",10,100);
		add(dayLabel);
		monthLabel = new MyLabel("miesiąc",10,130);
		add(monthLabel);
		yearLabel = new MyLabel("rok",10,160);
		add(yearLabel);
		timeLabel = new MyLabel("godzina",10,190);
		add(timeLabel);
		firstTimeLabel = new MyLabel("pierwszy raz",10,220);
		add(firstTimeLabel);
		
		firstTimeBox = new MyCheckBox(170, 220);
		add(firstTimeBox);
		
		registerButton = new MyButton("rejestruj",400,300);
		add(registerButton);
		registerButton.addActionListener(this);
	
	
	}
	
	public void actionPerformed(ActionEvent e)
	{
		String name = nameField.getText();
		String sname = snameField.getText();
		int pesel = Integer.parseInt(peselField.getText());
		String time = timeField.getText();
		boolean firstTime = firstTimeBox.isSelected();
		int day = Integer.parseInt(dayField.getText());
		int month = Integer.parseInt(monthField.getText());
		int year = Integer.parseInt(yearField.getText());
		
		Register.addPatient(name, sname, pesel, day, month, year, time, firstTime);
		
		
		
	}
	
	
	
	
}

class MyLabel extends JLabel
{
	private final int DEFAULT_HEIGHT=30,DEFAULT_WIDTH=150;
	public MyLabel(String name,int pozx,int pozy)
	{
		super(name);
		setFont(new Font("Arial",Font.PLAIN,25));
		setBounds(pozx,pozy,DEFAULT_WIDTH,DEFAULT_HEIGHT);
		
	}
}

class MyTextField extends JTextField
{
	private final int DEFAULT_HEIGHT=30,DEFAULT_WIDTH=250;
	
	public MyTextField(int pozx,int pozy)
	{
		super();
		setFont(new Font("Arial",Font.PLAIN,25));
		setBounds(pozx,pozy,DEFAULT_WIDTH,DEFAULT_HEIGHT);
		
	}
}

class MyCheckBox extends JCheckBox
{	
	private final int DEFAULT_HEIGHT=40,DEFAULT_WIDTH=40;
	
	public MyCheckBox(int pozx,int pozy)
	{
		super();
		setBounds(pozx,pozy,DEFAULT_WIDTH,DEFAULT_HEIGHT);
	}
}

class MyButton extends JButton
{
	private final int DEFAULT_HEIGHT=40,DEFAULT_WIDTH=150;
	
	public MyButton(String name,int pozx,int pozy)
	{
		super(name);
		setBounds(pozx,pozy,DEFAULT_WIDTH,DEFAULT_HEIGHT);
		
	}
}






0
  • Register - Czasownik na nazwę klasy to nie njlepszy pomysł. Na dodatek jest zbyt ogólnym pojęciem.
  • list nazwa powinna mówić co zawiera lista. patients było by lepsze
  • MyFrame Wszelkie My* jest bezsensu
  • boolean addPatient(String aName,String aSName,int aPesel,int aDay,int aMonth,int aYear,String aTime,boolean aFirstTime) za dużo argumentów.
  • w klasie Person masz dwa pola name i sName
  • MyDate - My*, na dodatek po co to robisz? Są gotowe rozwiązania te w standardu Java, które będą lepsze od tego co ty napiszesz. Są też lepsze gotowe rozwiązania np Apache.
  • Patient firstTime co pierwszy raz?
  • public String getInfo() od tego masz toString()
  • actionPerformed zbyt ogólna nazwa
  • po co dziedziczenie po JLabel, JTextField, JCheckBox, JButton tylko po to, żeby zmienić konstruktor?
0

Nazwa actionPerformed jest może zbyt ogólna, ale jest obowiązkowa i nie można jej zmienić.;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1