62,614
社区成员
发帖
与我相关
我的任务
分享
package pattern;
class Focus{ //焦距
int focus;
public void setFocus(int focus){
this.focus = focus;
System.out.println("焦距被置为"+focus);
}
}
class Aperture{ //光圈
String aperture;
public void setAperture(String aperture){
this.aperture = aperture;
System.out.println("光圈被置为"+aperture);
}
}
class Shutter{ //快门
double shutter;
public void setShutter(double shutter){
this.shutter = shutter;
System.out.println("快门时间为"+shutter);
}
}
public class CameraFacade { //自动档
Focus x = new Focus();
Aperture y = new Aperture();
Shutter z = new Shutter();
public void powerOn(){
System.out.println("相机开机...");
}
public void takePhoto(){ //系统选择一个适中参数给予固定
x.setFocus(50);
y.setAperture("F3");
z.setShutter(1.0/1000);
System.out.println("拍摄成功!");
}
}
class Demo{
public static void main(String[] args) { //对于使用者来说只做两件事情,开机和拍照
CameraFacade camera = new CameraFacade(); //只有一个Facade对象
camera.powerOn();
camera.takePhoto();
}
}
class Focus{
int focus;
public void setFocus(int focus){
this.focus = focus;
System.out.println("焦距被置为"+focus);
}
}
class Aperture{
String aperture;
public void setAperture(String aperture){
this.aperture = aperture;
System.out.println("光圈被置为"+aperture);
}
}
class Shutter{
double shutter;
public void setShutter(double shutter){
this.shutter = shutter;
System.out.println("快门时间为"+shutter);
}
}
public class CameraFacade {
Focus x = new Focus();
Aperture y = new Aperture();
Shutter z = new Shutter();
public void powerOn(){
System.out.println("相机开机...");
}
public void takePhoto(){
x.setFocus(50);
y.setAperture("F3");
z.setShutter(1.0/1000);
System.out.println("拍摄成功!");
}
}
class Demo{
public static void main(String[] args) {
CameraFacade camera = new CameraFacade();
camera.powerOn();
camera.takePhoto();
}
}
public abstract class Tank{
public abstract shot();
public abstract run();
}
public class T50 extends tank{} //各种型号的坦克去继承同一个抽象类
pbulic class T90 extends Tank{}
功能对任何型号都可以做扩展,把功能定义成接口,然后通过接口实现(implements)来扩展功能。
public class T50A extends T50 implements IA{} //具备夜视功能
public class T50B extends T50 implements IB{} //具备两栖功能
public class T50AB extends T50 implements IA,IB{} //具备夜视和两栖功能
public class T50AB extends T50 implements IA,IB{} //具备夜视、两栖、卫星定位功能