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

html企业网站源码下载电商平台管理系统

html企业网站源码下载,电商平台管理系统,云南网站设计模板,宣威网站建设c3salesHead 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/504635/

相关文章:

  • 移动端网站案例重庆快速建站
  • qq头像网站源码梅州建站网络科技有限公司
  • 北京市建设厅网站首页网站统计代码添加
  • 信阳企业网站建设公司上海企业网站建设制
  • 郑州的做网站公司wordpress 问答类主题
  • 美食网站需求分析深圳做网站的公司排名
  • h5手机网站发展趋势加强门户网站建设 信息公开
  • 公司网站简介怎么做如何用子域名做网站
  • 网站建设厂家徐州网页设计
  • 购物商城网站开发目的文档精品资料网 资料库
  • 可以做网站网站权重低
  • 旅游景区网站源码带购物车的网站模板
  • 枣庄市建设局网站免费网站建设制作视频
  • 珠海企业机械网站建设最好用的素材网站
  • 哪些网站是jsp做的网站运行速度优化
  • 做网站个人怎么赚钱吗网站建设公司市场开发方案
  • 网站开发保密协议范本下载无锡seo网站排名优化
  • 学校网站建设需求文档河北康城建设集团网站
  • 山西科技网站建设企业网站设计说明
  • 网站建设网站建工会网站建设的重要性
  • 山东泰润建设集团网站有没有免费的源码网站
  • 东莞网站优化排名网站安卓盒子 做网站
  • 快速开租建站怎么才能做电商
  • 网站的首页怎么做的解压wordpress路径的权限
  • 网站设置受信任建设银行社保网站
  • 网站建设要学会什么软件哪个网站可以做设计赚钱
  • 网站里面的数据库是怎么做的值得抓取的网站
  • 台州 网站建设如何做代刷网站长
  • 网站优化意见wow亚洲服有永久60级么
  • 房产机构网站建设目标定位网站备案 登陆