设计模式:单一职责原则
2016-07-05 17:11
411 查看
定义:一个类负责一个职责。
解决:当一个类出现负责多个职责的时候,有几个职责就创建几个类,各自负责各自职责
例子:动物都是呼吸空气
运行结果:
牛呼吸空气
羊呼吸空气
猪呼吸空气
发现问题,鱼是不呼吸空气的,修改时如果遵循单一职责原则,需要将Animal类细分为陆生动物类Terrestrial,水生动物Aquatic,代码如下:
解决:当一个类出现负责多个职责的时候,有几个职责就创建几个类,各自负责各自职责
例子:动物都是呼吸空气
class Animal{ public void breathe(String animal){ System.out.println(animal+"呼吸空气"); } } public class Client{ public static void main(String[] args){ Animal animal = new Animal(); animal.breathe("牛"); animal.breathe("羊"); animal.breathe("猪"); } }
运行结果:
牛呼吸空气
羊呼吸空气
猪呼吸空气
发现问题,鱼是不呼吸空气的,修改时如果遵循单一职责原则,需要将Animal类细分为陆生动物类Terrestrial,水生动物Aquatic,代码如下:
class Terrestrial{ public void breathe(String animal){ System.out.println(animal+"呼吸空气"); } } class Aquatic{ public void breathe(String animal){ System.out.println(animal+"呼吸水"); } } public class Client{ public static void main(String[] args){ Terrestrial terrestrial = new Terrestrial(); terrestrial.breathe("牛"); terrestrial.breathe("羊"); terrestrial.breathe("猪"); Aquatic aquatic = new Aquatic(); aquatic.breathe("鱼"); } }
相关文章推荐
- JSP中的编码设置
- 巨魔没金币
- java.util.Collections.reverse()
- join命令
- jvm jstat 命令使用
- Ubuntu下python应如何将.py文件当模块进行导入
- spark机器学习笔记:(七)用Spark Python构建聚类模型
- DevExpress GridControl复合表头(多行表头)设置
- SQLAlchemy安装和使用
- 单例模式之坑与爬坑
- 文章标题
- Java static关键字以及Java静态变量和静态方法
- 【数据结构与算法】Hash Table
- UVa 1025 A Spy in the Metro
- 342. Power of Four
- Entity Framework Code-First(17):Database Initialization Strategy
- Android动态加载启动页
- U3D报错:Screen position out of view frustum
- iOS 为什么选择了OC
- Tomcat日志catalina.out分割