展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

传统方式解决盖房问题

  • 盖房项目需求
1) 需要建房子:这一过程为打桩、砌墙、封顶
2) 房子有各种各样的,比如普通房,高楼,别墅,各种房子的过程虽然一样,但是要求不相同

  • 代码实现
package com.atguigu.builder;
public abstract class AbstractHouse {
	
	//打地基
	public abstract void buildBasic();
	//砌墙
	public abstract void buildWalls();
	//封顶
	public abstract void roofed();
	
	public void build() {
		buildBasic();
		buildWalls();
		roofed();
	}
	
}

package com.atguigu.builder;
public class CommonHouse extends AbstractHouse {

	@Override
	public void buildBasic() {
		// TODO Auto-generated method stub
		System.out.println(" 普通房子打地基 ");
	}

	@Override
	public void buildWalls() {
		// TODO Auto-generated method stub
		System.out.println(" 普通房子砌墙 ");
	}

	@Override
	public void roofed() {
		// TODO Auto-generated method stub
		System.out.println(" 普通房子封顶 ");
	}

}

package com.atguigu.builder;
public class Client {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		CommonHouse commonHouse = new CommonHouse();
		commonHouse.build();
	}
}
  • 传统方式解决盖房问题优缺点
1) 优点是比较好理解,简单易操作
2) 设计的程序结构,过于简单,没有设计缓存层对象,程序的扩展和维护不好. 也就是说,这种设计方案,把产品(即:房子) 和 创建产品的过程(即:建房子流程) 封装在一起,耦合性增强了。
3) 解决方案:将产品和产品建造过程解耦 => 建造者模式
posted @ 2022-08-30 15:22  DogLeftover  阅读(14)  评论(0编辑  收藏  举报