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

网站相册优化石家庄企业做网站

网站相册优化,石家庄企业做网站,zine 能发布wordpress,企业网站建设的趋势Head First设计模式学习笔记 大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿! 一、策略模式 策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让…

Head First设计模式学习笔记

大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!

一、策略模式

策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。

package cn.juwatech.strategy;interface QuackBehavior {void quack();
}class Quack implements QuackBehavior {public void quack() {System.out.println("Quack");}
}class Squeak implements QuackBehavior {public void quack() {System.out.println("Squeak");}
}abstract class Duck {QuackBehavior quackBehavior;public void performQuack() {quackBehavior.quack();}public void setQuackBehavior(QuackBehavior qb) {this.quackBehavior = qb;}abstract void display();
}class MallardDuck extends Duck {public MallardDuck() {quackBehavior = new Quack();}void display() {System.out.println("I'm a Mallard Duck");}
}public class StrategyPatternDemo {public static void main(String[] args) {Duck mallard = new MallardDuck();mallard.performQuack();mallard.setQuackBehavior(new Squeak());mallard.performQuack();}
}

二、观察者模式

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

package cn.juwatech.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<>();}public void registerObserver(Observer o) {observers.add(o);}public void removeObserver(Observer o) {observers.remove(o);}public void notifyObservers() {for (Observer observer : observers) {observer.update(temperature, humidity, pressure);}}public void measurementsChanged() {notifyObservers();}public void setMeasurements(float temperature, float humidity, float pressure) {this.temperature = temperature;this.humidity = humidity;this.pressure = pressure;measurementsChanged();}
}class CurrentConditionsDisplay implements Observer {private float temperature;private float humidity;private Subject weatherData;public CurrentConditionsDisplay(Subject weatherData) {this.weatherData = weatherData;weatherData.registerObserver(this);}public void update(float temp, float humidity, float pressure) {this.temperature = temp;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);}
}

三、装饰者模式

装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。

package cn.juwatech.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";}public 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;}public String getDescription() {return beverage.getDescription() + ", Mocha";}public double cost() {return .20 + 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);System.out.println(beverage.getDescription() + " $" + beverage.cost());}
}

四、工厂模式

工厂模式通过定义一个创建对象的接口,让子类决定实例化哪一个类。

package cn.juwatech.factory;abstract class Pizza {String name;void prepare() {System.out.println("Preparing " + name);}void bake() {System.out.println("Baking " + name);}void cut() {System.out.println("Cutting " + name);}void box() {System.out.println("Boxing " + name);}public String getName() {return name;}
}class CheesePizza extends Pizza {public CheesePizza() {name = "Cheese Pizza";}
}class GreekPizza extends Pizza {public GreekPizza() {name = "Greek Pizza";}
}abstract class PizzaStore {public Pizza orderPizza(String type) {Pizza pizza = createPizza(type);pizza.prepare();pizza.bake();pizza.cut();pizza.box();return pizza;}protected abstract Pizza createPizza(String type);
}class SimplePizzaFactory extends PizzaStore {protected Pizza createPizza(String type) {Pizza pizza = null;if (type.equals("cheese")) {pizza = new CheesePizza();} else if (type.equals("greek")) {pizza = new GreekPizza();}return pizza;}
}public class FactoryPatternDemo {public static void main(String[] args) {PizzaStore store = new SimplePizzaFactory();Pizza pizza = store.orderPizza("cheese");System.out.println("Ordered a " + pizza.getName() + "\n");pizza = store.orderPizza("greek");System.out.println("Ordered a " + pizza.getName() + "\n");}
}

本文著作权归聚娃科技微赚淘客系统开发者团队,转载请注明出处!

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

相关文章:

  • 定制网站建设成本磐安县建设局网站
  • 平面图网站wordpress响应速度忽快忽慢
  • 模仿淘宝网站怎么自己做一个网站
  • 网站的栏目设置定兴网站建设
  • 防腐木用什么名字做网站城阳网站建设培训
  • 烟台网站设计公司推荐湘西网站制作
  • 免费单页网站模板最新wordpress程序
  • 商丘做网站的费用卓企做的网站怎么样
  • 做网站多少钱西宁君博相约怎样做网站建设
  • 做网站的软件公司小程序介绍范文
  • 只做早餐的网站邯郸市设计公司电话
  • 宣传类网站wordpress添加文章目录
  • 成都行业网站建设十大搜索引擎入口
  • 舆情网站直接打开在自己的电脑做网站空间
  • 网站开发工具概述与比较成都网站建设上云
  • 手机网站居中显示网站所有页面只显示域名
  • 个人工作室网站wordpress招聘
  • 海口网站建设网站制作北京建工博海建设有限公司网站
  • 来一个网站谢谢了网站模板哪家好
  • wap网站开发语言动态手机网站怎么做的
  • 门户网站建设的公司四川住房和建设厅网站
  • 做网站地图的步骤erp系统哪个品牌最好
  • 培训网站开发公司网络平台怎么建立网站吗
  • 好的网站设计模板江苏网站建设定制
  • 智慧城市展厅设计公司手机网站 搜索优化 百度
  • 建设一个网站大概费用网站开发人员兼职
  • 网站标题flash建设工程管理网站
  • 哪个网站做轴承外贸的人比较多深圳建设网站制作
  • 滕州市建设局网站好的网站建设哪家好
  • 上海网站建设建站旅游网站网页设计