码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式_01_单一原则

时间:2015-04-23 19:35:06      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:

设计模式_01_单一原则

 

package designPatternOf_01;
/**
 * 单一原则示例:动物呼吸
 * 引入的问题:鱼不吸空气,吸水
 */
public class SinglePrinciple_01 {
    public static void main(String[] args) {
        Animal animal=new Animal();
        animal.breath("小猫");
        animal.breath("小兔");
        animal.breath("小狗");
    }
}
class Animal{
    public void breath(String animal){
        System.out.println(animal+"吸空气!");
    }
}

 

 

package designPatternOf_01;
/**
 * 单一原则示例:动物呼吸
 * 1、问题:鱼不吸空气,吸水
 * 2、解决问题(遵循单一原则,复杂):水生动物Terrestre、陆生动物Aquatic
 * 3、复杂问题:要客户端(main方法)需要修改,又要修改处理类需要修改
 */
public class SinglePrinciple_02 {
    public static void main(String[] args) {
        Terrestre terrestre=new Terrestre();
        terrestre.breath("小猫:");
        terrestre.breath("小狗:");
        terrestre.breath("小兔:");
        
        Aquatic aquatic=new Aquatic();
        aquatic.breath("小鱼");
    }
}

/**
 * 陆生动物
 */
class Terrestre{
    public void breath(String animal){
        System.out.println(animal+"吸空气!");
    }
}
/**
 * 水生动物
 */
class Aquatic{
    public void breath(String animal){
        System.out.println(animal+"吸空气!");
    }
}

 

package designPatternOf_01;
/**
 * 单一原则示例:动物呼吸
 * 1、引入的问题:鱼不吸空气,吸水
 * 2、解决问题:直接修改客户端(SinglePrinciple_03类:main):(违背单一原则,代码级别上违背,却简单)
 * 3、修改简单,问题来了:如果有一天将鱼分为淡水、海水鱼,如果牛也吸水了...
 */
public class SinglePrinciple_03 {
    public static void main(String[] args) {
        Animal03 animal03=new Animal03();
        animal03.breath("小猫:");
        animal03.breath("小狗:");
        animal03.breath("小兔:");
        
        animal03.breath("小鱼");
    }
}

class Animal03{
    public void breath(String animal){
        if(animal.equals("小鱼")){
            System.out.println(animal+"吸水!");
        }else {
            System.out.println(animal+"吸空气!");
        }
    }
}

 

package designPatternOf_01;
/**
 * 单一原则示例:动物呼吸
 * 1、引入的问题:鱼不吸空气,吸水
 * 2、直接修改客户端(SinglePrinciple_03类:main)
 * 3、解决问题(违背单一原则,方法级别上违背):如果有一天将鱼分为淡水、海水鱼,如果牛也吸水了...
 */
public class SinglePrinciple_04 {
    public static void main(String[] args) {
        Animal04 animal04=new Animal04();
        animal04.breath_0("小猫:");
        animal04.breath_1("小狗:");
        animal04.breath_0("小兔:");
        
        animal04.breath_1("小鱼:");
    }
}

class Animal04{
    public void breath_0(String animal){
            System.out.println(animal+"吸水!");
    }
    public void breath_1(String animal){
        System.out.println(animal+"吸空气");
    }
}

 

各有优点,取舍有度才能做到游刃有余

 

设计模式_01_单一原则

标签:

原文地址:http://www.cnblogs.com/zjsy/p/4451365.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!