建造者模式

来源:互联网 发布:mysql concat 加换行 编辑:程序博客网 时间:2024/06/15 16:06

建造者模式的本质:


-分离了对象子组件的的单独构造(由Builder来负责)和装配(由Director负责)。从而可以构造出复杂的对象。这个模式适用于:某个对象的构建过程复杂的情况下使用。


-由于事先了构建和装配的解耦。不同的构建器,相同的装配,也可以做出不同的对象;相同的构建器,不同的装配顺序也可以做出不同的对象。也就是实现了构建算法,装配算法的解耦。实现了更好的复用


代码说明:


package myGirlFriend;public class GirlFriend {private String name;private int age;private String Bust;private String leg;public GirlFriend(String name, int age, String bust, String leg) {super();this.name = name;this.age = age;Bust = bust;this.leg = leg;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getBust() {return Bust;}public void setBust(String bust) {Bust = bust;}public String getLeg() {return leg;}public void setLeg(String leg) {this.leg = leg;}public GirlFriend() {super();}}
package myGirlFriend;public interface GirFriendInterface {String name();int age();String Bust();String leg();}


package myGirlFriend;public interface Director {GirlFriend directGirFriend();}

package myGirlFriend;public class GirFriendDirector implements Director{private GirFriendBulider girl;public GirFriendDirector(GirFriendBulider girl) {super();this.girl = girl;}@Overridepublic GirlFriend directGirFriend() {GirlFriend gf = new GirlFriend("杨幂", 18, "36D", "修长的美腿");return gf;}}


package myGirlFriend;public class GirFriendBulider implements GirFriendInterface {@Overridepublic String name() {// TODO Auto-generated method stubreturn name();}@Overridepublic int age() {// TODO Auto-generated method stubreturn age();}@Overridepublic String Bust() {// TODO Auto-generated method stubreturn Bust();}@Overridepublic String leg() {// TODO Auto-generated method stubreturn leg();}}

package myGirlFriend;import java.util.Scanner;public class myGirlFriend {public static void main(String[] args) throws InterruptedException {GirFriendDirector gd= new GirFriendDirector(new GirFriendBulider());GirlFriend gf =gd.directGirFriend();System.out.println("您的女朋友名字:"+gf.getName());Thread.sleep(1000);System.out.println("年龄:"+gf.getAge());Thread.sleep(1000);System.out.println("胸围:"+gf.getBust());Thread.sleep(1000);System.out.println("拥有一条"+gf.getLeg());Scanner sc =new Scanner(System.in);Thread.sleep(1000);System.out.println("请问您对这个女朋友满意不?");String  nn =sc.nextLine();if(nn.equals("不满意")) {System.out.println("一个屌丝");}else if(nn.equals("满意")){System.out.println(gf.getName()+"今晚就陪你睡觉");}else {System.out.println("对不起,识别不成功,只能输入不满意或满意");}}}



原创粉丝点击