网站换行代码上海哪家网站建设公司好
web/
2025/9/28 8:04:28/
文章来源:
网站换行代码,上海哪家网站建设公司好,私人承接软件开发定制,天津在哪做网站设计原则
封装、继承、多态、抽象分别可以解决哪些编程问题 封装#xff1a;也叫做信息隐藏或数据保护访问。数据 通过暴露有限的访问接口#xff0c;授权外部仅能通过类提供接口访问#xff0c;对内的类private私有化属性#xff0c;通过封装简化操作#xff0c;让用户更…设计原则
封装、继承、多态、抽象分别可以解决哪些编程问题 封装也叫做信息隐藏或数据保护访问。数据 通过暴露有限的访问接口授权外部仅能通过类提供接口访问对内的类private私有化属性通过封装简化操作让用户更好使用隐藏信息、保护数据
抽象主要是讲如何隐藏方法的具体实现让调用者之需要关系方法提供了哪些功能并不需要知道这些功能是如何实现的可借助interface和abstract两个关键字实现简化操作让用户只关心功能点不用关心具体实现
继承继承的好处就是代码复用Java只支持单一继承
多态多态就是指子类可以替代父类多态能提供代码的扩展性和复用性
设计模式开源实战
工厂模式在Calendar类只能够的应用 大多数工厂模式都是以Factory作为后缀来命名。但是实际运用过程中非常灵活比如java JDK中的一个应用java.util.Calendar。从命名上不好看出它是一个工厂类 Calendar类提供了getInstanc()工厂方法获取不同的TimeZone和Locale,创建不同的Calendar子类对象 public static Calendar getInstance(TimeZone zone,Locale aLocale){return createCalendar(zone, aLocale);}private static Calendar createCalendar(TimeZone zone,Locale aLocale){CalendarProvider provider LocaleProviderAdapter.getAdapter(CalendarProvider.class, aLocale).getCalendarProvider();if (provider ! null) {try {return provider.getInstance(zone, aLocale);} catch (IllegalArgumentException iae) {// fall back to the default instantiation}}Calendar cal null;if (aLocale.hasExtensions()) {String caltype aLocale.getUnicodeLocaleType(ca);if (caltype ! null) {switch (caltype) {case buddhist:cal new BuddhistCalendar(zone, aLocale);break;case japanese:cal new JapaneseImperialCalendar(zone, aLocale);break;case gregory:cal new GregorianCalendar(zone, aLocale);break;}}}if (cal null) {// If no known calendar type is explicitly specified,// perform the traditional way to create a Calendar:// create a BuddhistCalendar for th_TH locale,// a JapaneseImperialCalendar for ja_JP_JP locale, or// a GregorianCalendar for any other locales.// NOTE: The language, country and variant strings are interned.if (aLocale.getLanguage() th aLocale.getCountry() TH) {cal new BuddhistCalendar(zone, aLocale);} else if (aLocale.getVariant() JP aLocale.getLanguage() ja aLocale.getCountry() JP) {cal new JapaneseImperialCalendar(zone, aLocale);} else {cal new GregorianCalendar(zone, aLocale);}}return cal;}建造者模式在Calendar类中的应用 private String type;private TimeZone zone;private boolean lenient true;private Locale locale;private int firstDayOfWeek, minimalDaysInFirstWeek;/*** Constructs a {code Calendar.Builder}.*/public Builder() {}public Builder setInstant(long instant) {if (fields ! null) {throw new IllegalStateException();}this.instant instant;nextStamp COMPUTED;return this;}public Builder setInstant(Date instant) {return setInstant(instant.getTime()); // NPE if instant null}public Builder set(int field, int value) {// Note: WEEK_YEAR cant be set with this method.if (field 0 || field FIELD_COUNT) {throw new IllegalArgumentException(field is invalid);}if (isInstantSet()) {throw new IllegalStateException(instant has been set);}allocateFields();internalSet(field, value);return this;}
既然有了getInstance()工厂方法来创建Calendar类对象为什么还要用Builder来创建Calendar类对象呢这两者的区别在哪里呢 工厂模式是用来创建不同但相关类型的对象继承同一父类或接口的一组子类由给定的参数来决定创建哪种类型的对象。建造者模式用来创造一种类型的复杂的对象通过设置不同的可选参数定制化的创建不同的对象
装饰器模式在Collections类中的应用
适配器模式在Collections类中的应用 适配器模式可以用来兼容新旧老版本的接口。老版本的JDK提供了Enumeration类来遍历容器。新版本的JDK用Iterator类来替代Enumeration类来遍历容器。
持续更新中
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/83219.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!