设计模式 探索

来源:互联网 发布:招投标管理系统 源码 编辑:程序博客网 时间: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
原创粉丝点击