当前位置: 首页 > news >正文

pop布局的网站wordpress 图片等比例缩放

pop布局的网站,wordpress 图片等比例缩放,导购网站怎么做的,澧县住房和城乡建设局网站Head First设计模式中的典型设计模式解析与案例分析 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 《Head First设计模式》是一本广受欢迎的书籍&#xff0c…

Head First设计模式中的典型设计模式解析与案例分析

大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!

《Head First设计模式》是一本广受欢迎的书籍,以轻松有趣的方式介绍了设计模式的基本概念和应用场景。本文将解析其中的几个典型设计模式,并通过Java代码示例进行详细分析,帮助大家更好地理解和应用这些设计模式。

一、策略模式(Strategy Pattern)

  1. 模式解析

策略模式定义了一系列算法,并将每个算法封装起来,使它们可以互换。策略模式使得算法可以独立于使用它的客户端而变化。

  1. 应用场景

策略模式常用于需要在运行时选择不同算法的场景,比如排序算法、加密算法等。

示例代码:

package cn.juwatech.designpatterns.strategy;interface QuackBehavior {void quack();
}class Quack implements QuackBehavior {@Overridepublic void quack() {System.out.println("Quack!");}
}class Squeak implements QuackBehavior {@Overridepublic void quack() {System.out.println("Squeak!");}
}class MuteQuack implements QuackBehavior {@Overridepublic void quack() {System.out.println("<< Silence >>");}
}class Duck {private QuackBehavior quackBehavior;public Duck(QuackBehavior quackBehavior) {this.quackBehavior = quackBehavior;}public void performQuack() {quackBehavior.quack();}public void setQuackBehavior(QuackBehavior quackBehavior) {this.quackBehavior = quackBehavior;}
}public class StrategyPatternDemo {public static void main(String[] args) {Duck mallard = new Duck(new Quack());mallard.performQuack();Duck rubberDuck = new Duck(new Squeak());rubberDuck.performQuack();Duck decoy = new Duck(new MuteQuack());decoy.performQuack();}
}

二、观察者模式(Observer Pattern)

  1. 模式解析

观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。当主题对象发生变化时,所有依赖于它的观察者对象都会得到通知并更新。

  1. 应用场景

观察者模式常用于需要根据某对象状态变化通知其他对象的场景,如事件监听、数据绑定等。

示例代码:

package cn.juwatech.designpatterns.observer;import java.util.ArrayList;
import java.util.List;interface Observer {void update(float temp, float humidity, float pressure);
}interface Subject {void registerObserver(Observer o);void removeObserver(Observer o);void notifyObservers();
}class WeatherData implements Subject {private List<Observer> observers;private float temperature;private float humidity;private float pressure;public WeatherData() {observers = new ArrayList<>();}@Overridepublic void registerObserver(Observer o) {observers.add(o);}@Overridepublic void removeObserver(Observer o) {observers.remove(o);}@Overridepublic void notifyObservers() {for (Observer observer : observers) {observer.update(temperature, humidity, pressure);}}public void setMeasurements(float temperature, float humidity, float pressure) {this.temperature = temperature;this.humidity = humidity;this.pressure = pressure;notifyObservers();}
}class CurrentConditionsDisplay implements Observer {private float temperature;private float humidity;private Subject weatherData;public CurrentConditionsDisplay(Subject weatherData) {this.weatherData = weatherData;weatherData.registerObserver(this);}@Overridepublic void update(float temperature, float humidity, float pressure) {this.temperature = temperature;this.humidity = humidity;display();}public void display() {System.out.println("Current conditions: " + temperature + "F degrees and " + humidity + "% humidity");}
}public class ObserverPatternDemo {public static void main(String[] args) {WeatherData weatherData = new WeatherData();CurrentConditionsDisplay currentDisplay = new CurrentConditionsDisplay(weatherData);weatherData.setMeasurements(80, 65, 30.4f);weatherData.setMeasurements(82, 70, 29.2f);}
}

三、装饰者模式(Decorator Pattern)

  1. 模式解析

装饰者模式动态地给对象添加一些额外的职责。装饰者模式提供了比继承更有弹性的替代方案。

  1. 应用场景

装饰者模式常用于需要动态地扩展对象功能的场景,如Java I/O类的设计。

示例代码:

package cn.juwatech.designpatterns.decorator;abstract class Beverage {String description = "Unknown Beverage";public String getDescription() {return description;}public abstract double cost();
}class Espresso extends Beverage {public Espresso() {description = "Espresso";}@Overridepublic double cost() {return 1.99;}
}abstract class CondimentDecorator extends Beverage {public abstract String getDescription();
}class Mocha extends CondimentDecorator {Beverage beverage;public Mocha(Beverage beverage) {this.beverage = beverage;}@Overridepublic String getDescription() {return beverage.getDescription() + ", Mocha";}@Overridepublic double cost() {return 0.20 + beverage.cost();}
}class Whip extends CondimentDecorator {Beverage beverage;public Whip(Beverage beverage) {this.beverage = beverage;}@Overridepublic String getDescription() {return beverage.getDescription() + ", Whip";}@Overridepublic double cost() {return 0.10 + beverage.cost();}
}public class DecoratorPatternDemo {public static void main(String[] args) {Beverage beverage = new Espresso();System.out.println(beverage.getDescription() + " $" + beverage.cost());beverage = new Mocha(beverage);beverage = new Whip(beverage);System.out.println(beverage.getDescription() + " $" + beverage.cost());}
}

四、单例模式(Singleton Pattern)

  1. 模式解析

单例模式确保一个类只有一个实例,并提供一个全局访问点。

  1. 应用场景

单例模式常用于需要全局唯一实例的场景,如配置管理类、日志类等。

示例代码:

package cn.juwatech.designpatterns.singleton;public class Singleton {private static Singleton uniqueInstance;private Singleton() {}public static synchronized Singleton getInstance() {if (uniqueInstance == null) {uniqueInstance = new Singleton();}return uniqueInstance;}public void showMessage() {System.out.println("Hello, I am a Singleton!");}public static void main(String[] args) {Singleton singleton = Singleton.getInstance();singleton.showMessage();}
}

五、总结

设计模式提供了解决软件设计中常见问题的成熟方案。在《Head First设计模式》一书中,策略模式、观察者模式、装饰者模式和单例模式等典型设计模式通过生动的示例和详细的解释,帮助读者更好地理解和应用这些模式。希望通过本文的解析和案例分析,大家能更好地掌握这些设计模式,在实际开发中灵活运用,提高代码的可维护性和扩展性。

http://www.yayakq.cn/news/287958/

相关文章:

  • 网站信息服务费怎么做分录wordpress主题模板导出
  • 专注企业网站建设程序员做音乐网站
  • 淄博网站建设公司乐达有情怀的网站设计
  • 秦皇岛网站制作费用wordpress404设置
  • 济南网站推广排名vi设计一套多少钱
  • 如何做网站客户端做网站手机号抓取的公司
  • 南平公司做网站wordpress媒体缩略图
  • 手机网站建设价钱网站开发的解决方案
  • 设计师的个人网站无锡网络公司排名
  • 做贸易的都有什么网站ui是做网站的吗
  • 巴彦淖尔专业做网站的公司浙江省建设安全监督站的网站
  • 珠海做网站的h5婚纱摄影网站模板
  • 网站推广网络营销wordpress后台默认密码
  • wordpress如何应用ssl抖音seo
  • gta5买办公室 网站正在建设英文网站建设推广
  • 域名对网站seo的影响吗个人电脑 网站 备案
  • 腾讯学生服务器做网站网站死链是什么
  • 那个做我女朋友的网站事务所网站制作方案
  • php做企业网站产品策划推广方案
  • 南京网站设计机构上海市一体化办公平台
  • 网站设计教学云南网站的设计公司
  • 王晴儿 网站建设腾讯云wordpress博客
  • 网站平台在线提交功能学校网站怎么做的
  • 张家港优化网站seo江苏嘉隆工程建设有限公司网站
  • 文化公司网站建设策划书天元建设集团有限公司第八分公司
  • 建设信用卡申请进度查询官方网站怎么做彩票网站平台
  • 淘宝客网站素材海南新政策最新
  • 做淘宝店招的网站白云做网站SEO
  • dw中用php做网站局域网网站建设协议
  • 微信分销网站建设费用上海百姓网免费发布信息网