java为一种面向对象的编程语言,面向对象就要有类以及类的对象。在进行类的设计应注意以下几点:
1、一个.java文件尽量只写一个类,如果非要存放多个类,也只能有一个类是用public来修饰。
2、在创建好的新类中尽量用组合,少用继承,除非继承来的方法都有用。
3、对类中的属性一般定义为私有,提供公有的设置和提取方法,做好封装工作。
4、对局部变量进行初始化,在java中,系统只会对成员变量进行默认初始化,不会对局部成员变量进行初始化。
5、定义构造方法时不能调用其他方法,在初始化各成员变量时,可能回产生某种异常,应该把这种异常抛出。普通方法的参数不宜过多。
6、避免使用protected来修饰变量。以免破坏封装。
7、重写方法不应改变预期的行为。
8、尽量使用多态。
9、尽量符合软件的可维护与可复用原则。包括:开闭原则(对功能扩展开放,对源码功能修改关闭)替换原则(父类可以出现的地方,子类同样可以出现)依赖倒转原则(抽象不依赖于细节,细节依赖于抽象,或称为依赖接口编程,不依赖于实现编程。应用上就是子类对象给父类用,即 动物 animal =new 猫科 (); )接口分离原则(提供调用者需要的方法,屏蔽不需要的方法。)
10、使用static的方法可以直接使用类名调用,即类名.方法名
package face_object;
public interface IOrderForAdmin extends IOrderForOtherSys,IOrderForPortal {
String updateOrder();
String deleteOrder();
package face_object;
public interface IOrderForPortal {
String getOrder();
}
package face_object;
public class Order implements IOrderForOtherSys,IOrderForPortal,IOrderForAdmin{
private Order() {
}
@Override
public String updateOrder() {
return "updateorder";
}
@Override
public String deleteOrder() {
return "deleorder";
}
@Override
public String insertOrder() {
return "insertorder";
}
@Override
public String getOrder() {
return "getorder";
}
public static IOrderForAdmin getOrderForAdmin() {
return (IOrderForAdmin) new Order();
}
public static IOrderForPortal getOrderForPortal() {
return (IOrderForPortal) new Order();
}
public static IOrderForOtherSys getOrderForOtherSys() {
return (IOrderForOtherSys) new Order();
}
}
public interface IOrderForOtherSys {
String insertOrder();
String getOrder();
}
package face_object;
public class TestCreateLimit {
public static void main(String[] args) {
IOrderForOtherSys iOrderForOtherSys=Order.getOrderForOtherSys();
IOrderForPortal iOrderForPortal=Order.getOrderForPortal();
IOrderForAdmin iOrderForAdmin=Order.getOrderForAdmin();
System.out.println("Protal的调用"+iOrderForPortal.getOrder()+" "+IOrderForAdmin.class);
System.out.println("OtherSys的调用"+iOrderForOtherSys.getOrder()+" "+iOrderForOtherSys.insertOrder()+" "+iOrderForOtherSys.getClass());
System.out.println("Admin的调用"+iOrderForAdmin.deleteOrder()+" "+iOrderForAdmin.getOrder()+" "+
" "+iOrderForAdmin.insertOrder()+" "+iOrderForAdmin.updateOrder()+" "+iOrderForAdmin.getClass());
}
}