长沙网站优化联系方式微网站的建设模板有哪些内容
news/
2025/9/30 7:52:10/
文章来源:
长沙网站优化联系方式,微网站的建设模板有哪些内容,网站建设柒首先金手指1,织梦网站图标建造者模式#xff1a;将一个复杂对象的构建与它的表示分离#xff0c;使得同样的构建过程可以创建不同的表示。
建造者模式的4个角色#xff1a;
Product产品类#xff1a;通常是实现了模版方法模式#xff0c;有模版方法和基本方法。
Builder抽象建造者#xff1a;规…建造者模式将一个复杂对象的构建与它的表示分离使得同样的构建过程可以创建不同的表示。
建造者模式的4个角色
Product产品类通常是实现了模版方法模式有模版方法和基本方法。
Builder抽象建造者规范产品的组建一般是由子类实现。
ConcreteBuilder具体建造者实现抽象建造者定义的所有方法并且返回一个组建好的对象。
Director导演类负责安排已有模块的顺序然后告诉Builder开始构建。 package com.juno.BuilderPattern;import java.util.ArrayList;public abstract class Product {public final static int MSG_OPERATE_1 1;public final static int MSG_OPERATE_2 2;private ArrayListInteger sequence new ArrayListInteger();protected abstract void operate1();protected abstract void operate2();public final void doSomething() {if(sequence.size() 0) {return;}for(int msg : sequence) {if (msg MSG_OPERATE_1) {operate1();} else if (msg MSG_OPERATE_2) {operate2();}}} public final void setSequence(ArrayListInteger sequence) {this.sequence sequence;}
}package com.juno.BuilderPattern;public class ConcreteProductA extends Product {Overrideprotected void operate1() {System.out.println(ProductA use MSG_OPERATE_1 operate1~~);}Overrideprotected void operate2() {System.out.println(ProductA use MSG_OPERATE_2 operate2~~);}}package com.juno.BuilderPattern;public class ConcreteProductB extends Product {Overrideprotected void operate1() {System.out.println(ProductB use MSG_OPERATE_1 operate1~~);}Overrideprotected void operate2() {System.out.println(ProductB use MSG_OPERATE_2 operate2~~);}}package com.juno.BuilderPattern;import java.util.ArrayList;public abstract class Builder {public abstract void setPart(ArrayListInteger sequence);public abstract Product buildProduct();
}package com.juno.BuilderPattern;import java.util.ArrayList;public class ConcreteBuilderA extends Builder {private ConcreteProductA productA new ConcreteProductA();Overridepublic void setPart(ArrayListInteger sequence) {this.productA.setSequence(sequence);}Overridepublic ConcreteProductA buildProduct() {return this.productA;}}package com.juno.BuilderPattern;import java.util.ArrayList;public class ConcreteBuilderB extends Builder {private ConcreteProductB productB new ConcreteProductB();Overridepublic void setPart(ArrayListInteger sequence) {this.productB.setSequence(sequence);}Overridepublic ConcreteProductB buildProduct() {return this.productB;}}package com.juno.BuilderPattern;import java.util.ArrayList;public class Director {private ArrayListInteger sequence new ArrayListInteger();private ConcreteBuilderA productABuilder new ConcreteBuilderA();private ConcreteBuilderB productBBuilder new ConcreteBuilderB();public ConcreteProductA getProductA1() {sequence.clear();sequence.add(Product.MSG_OPERATE_1);sequence.add(Product.MSG_OPERATE_2);productABuilder.setPart(sequence);return productABuilder.buildProduct();}public ConcreteProductA getProductA2() {sequence.clear();sequence.add(Product.MSG_OPERATE_1);productABuilder.setPart(sequence);return productABuilder.buildProduct();}public ConcreteProductB getProductB1() {sequence.clear();sequence.add(Product.MSG_OPERATE_1);sequence.add(Product.MSG_OPERATE_2);productBBuilder.setPart(sequence);return productBBuilder.buildProduct();}public ConcreteProductB getProductB2() {sequence.clear();sequence.add(Product.MSG_OPERATE_2);productBBuilder.setPart(sequence);return productBBuilder.buildProduct();}
}package com.juno.BuilderPattern;public class Client {public static void main(String[] args) {Director director new Director();System.out.println( ProductA1 );director.getProductA1().doSomething();System.out.println( ProductA2 );director.getProductA2().doSomething();System.out.println( ProductB1 );director.getProductB1().doSomething();System.out.println( ProductB2 );director.getProductB2().doSomething();}
}打印ProductA1
ProductA use MSG_OPERATE_1 operate1~~
ProductA use MSG_OPERATE_2 operate2~~ProductA2
ProductA use MSG_OPERATE_1 operate1~~ProductB1
ProductB use MSG_OPERATE_1 operate1~~
ProductB use MSG_OPERATE_2 operate2~~ProductB2
ProductB use MSG_OPERATE_2 operate2~~
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/922586.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!