目的和问题:子系统设计:子系统和包的差别:子系统通过接口清晰地定义了自己的行为,可是普通的包一般不会这样做子系统全然封装了它的内部数据和操作,普通包知识部分封装子系统非常easy被替换,普通的包不太easy被替换子系统清晰地定义了接口,外部客户通过接口来訪问该子系统。而包一般不定义接口。外部客户通过一个或者多个公共类来訪问包---外部客户对于子系统和包的不同訪问方式例如以下FishiGUI的子系统设计: