题目
某软件公司欲开发一套界面皮肤库,可以对桌面软件进行界面美化。不同
的皮肤将提供视觉效果不同的按钮、文本框、组合框等界面元素,其结构如下图所示:
该皮肤库需要具备良好的灵活性和可扩展性,用户可以自由选择不同的皮
肤,开发人员可以在不修改既有代码的基础上增加新的皮肤。试使用抽象
工厂模式设计该皮肤库,绘制类图并编程模拟实现。
类图
编码实现
抽象工程类SkinFactory
package com.yuzhyun.test4.Abstract;
public interface SkinFactory {
Button getButton();
TextView gettTextView();
CheckBox getCheckBox();
}
抽象产品类Button(CheckBox、TextView 类似,就不贴代码了)
package com.yuzhyun.test4.Abstract;
public abstract class Button {
}
具体产品类BlueButton(BlueCheckBox、BlueTextView 类似)
package com.yuzhyun.test4.Concrete;
import com.yuzhyun.test4.Abstract.Button;
public class BlueButton extends Button {