java代码设计原则

@TOC代码设计原则

1:里氏替换原则

子类继承父类时,字类可以扩展父类的功能,但是不要修改父类原有的功能。否则考虑重新继承一个合适的父类。
例1:
举一个简单的例子,什么鱼不会游泳,可能会有什么答案,比方说木鱼,死鱼等等。

//定义一个鱼类
class Fish{
  public void swimming(){
   system.out.println("i can swimming");
   }
}

//定义一个木鱼
class WoodenFish extends Fish{
    public void Knock(){
     system.out.println("i am used to beated");
}

}
//ceshi
public class test{
    public static void main(Strings[] args){
    WoodenFish wf = new WoodenFish();
    wf.swimming();
}

}

2:依赖倒置原则

尽量面向接口编程,尽量依赖抽象类。
例2:
比方说吃菜,每个人都有一个拿手好菜,想吃不同的好菜

public class tt {
    public static void main(String[] args){
        Lisa lisa = new Lisa();
        System.out.println(lisa.cook());
        Ben ben = new Ben();
        System.out.println(ben.cook());

    }

}
interface  Cook{
    public String cook();


}
class Lisa implements Cook{
    @Override

    public String cook() {
        return "麻坡豆腐";

    }
}
class Ben implements Cook{
    @Override

    public String cook() {
        return "麻辣香锅";

    }
}

3:单一职责原则

一个类应该承担一个职责。
**例3:**教师负责传授知识,辅导员负责管理班级

class Teacher{
void impartingKnowledge(){
    system.out.println("传授知识");
}
}
class Instructor{
void manageClass(){
   system.out.println("管理班级");

}

} 

4:接口隔离原则

把大的接口拆分为小的具体的接口,每个类有专门的接口。
**例4:**将oracle数据文件入到hive
可以分为获取文件阶段和上传入库阶段

interface DownFile{
   void connectOracle()void downloadFile();
}
interface UploadFile{
    void connectHive();
    void scanFile();
    void uploadFile();

}
class OracleTohive implements DownFile,UploadFile{
    public Test(){};
    public static DownFile getDoenFile(){
        return (DownFile)new OracleTohive();
}
    public static UploadFile getUploadFile(){
        return (UploadFile)new OracleTohive();
}
    void connectOracle(){
      system.out.println("连接oracle");
}
    void downloadFile(){
      system.out.println("把oracle的数据下载到本地");
}
    void connectHive(){
       system.out.println("连接hive");
}
    void scanFile(){
      system.out.println("扫描本地文件");
}
    void uploadFile(){
    system.out.println("将本地文件上传到hive");
}

}

5:迪米特法则

如果两个对象之间依赖性低或者关系不强,尽量不产生消息传递,由第三方传递。
**例5:**员工有问题可以直接找直属领导,由直属领导向上级反映。如投诉或者辞职。

class Employee{
   public String name;
   Employee(String name){
     this.name = name;
}
   public setName(String name){
      this.name = name;
} 
   public String getName(){
      return this.name;
}
  public String complaint(){
       return "工资太低";
} 
  public String resignation(){
       return this.name+"辞职"}
  

}
class Boss{
    private String name;
    Boss(String name){
        this.name = name;
}
    public setName(String name){
        this.name = name
}
    public String getName(){
        return this.name;
}
    public void receiverMessage(String message){
       system.out.println(this.name+"get到了"+message);
}
}
class Manager{
    private Employee employee;
    private Boss boss;
    public setEmployee(Employee employee){
        this.employee = employee;
}
    public setBoss(Boss boss){
        this.boss = boss;
}   public void sendMessage(){
        boss.receiverMessage(employee.complaint);

}

}
class test{ 
  public static void main(Strings[] args){
    Manager manage = new Manager();
    manage.setEmployee(new Employee("小强"));
    manage.setBoss(new Boss("大佬"));
    manage.sendMessage;

}
 

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值