设计模式 探索
来源:互联网 发布:招投标管理系统 源码 编辑:程序博客网 时间:2024/06/08 06:55
<pre class="java" name="code">package person;public class BabyPerson extends Person{public BabyPerson(){mPersonSayInter = new Baby();}}
最近我对“高质量代码”,比较感兴趣。
因此今天我就写一个小Java程序。
把变化的部分和不变化的部分分离开,针对接口编程 ==》针对超类型编程
针对实现编程,针对接口编程 把变的部分写成接口,这样我们就不会动源代码了。
变的部分写成接口
package person;public interface <span style="color:#ff0000;">PersonSayInter </span>{void say();}
package person;public class Mute implements <span style="color:#ff0000;">PersonSayInter</span>{public void say() {// TODO Auto-generated method stubSystem.out.println("哑巴不能说话。");}}
package person;public class Baby implements PersonSayInter{public void say() {// TODO Auto-generated method stubSystem.out.println("婴儿说话不利索。");}}
package person;public class Adult implements PersonSayInter{public void say() {// TODO Auto-generated method stubSystem.out.println("成人能正常的和人交谈。");}}
package person;public class Person {int height;int weight;PersonSayInter mPersonSayInter;public void say(){mPersonSayInter.say();}}
package person;public class BabyPerson extends Person{public BabyPerson(){mPersonSayInter = new Baby();}}
package person;public class MutePerson extends Person{public MutePerson(){mPersonSayInter = new Mute();}}
package person;public class AdultPerson extends Person{public AdultPerson(){mPersonSayInter = new Adult();}}
package person;public class PersonDriver {public static void main(String[] args) {MutePerson mutePerson = new MutePerson();mutePerson.say();BabyPerson babyPerson = new BabyPerson();babyPerson.say();AdultPerson adultPerson = new AdultPerson();adultPerson.say();}}
0 0
- 设计模式探索一
- 设计模式探索二
- 探索设计模式
- 设计模式 探索
- IOS设计模式探索
- 设计模式再探索
- java 设计模式探索
- 探索软件模式设计(一)
- 探索设计模式系列文章
- 设计模式探索系列之Bridge模式
- 设计模式探索系列之Bridge模式
- 探索设计模式--单例模式
- 【探索】 - 设计模式之单例模式
- 探索设计模式之----单例模式
- 探索设计模式之----工厂模式
- 探索设计模式之----适配器模式
- 探索设计模式之----代理模式
- 设计模式探索——工厂模式
- 欢迎使用CSDN-markdown编辑器
- 理解缓存定义
- 第四周 项目二-分数类的雏形
- 程序员的技术烦恼
- cxgrid几种条件下行变色问题与解决
- 设计模式 探索
- 存储过程,解决机房收费系统多表操作问题
- Ubuntu网络配置以DHCP方式配置网卡
- mysql 常用语句
- hdu 1598 find the most comfortable road 一开始把此题当做最短路。。后来发现不行。。并查集+枚举
- machine learning_support vector machine
- 比较简单实用的打印日志工具类LogUtil
- Struts2与Servlet的关系
- 机器学习的11个开源项目