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

相册制作app汕头网站快速排名优化

相册制作app,汕头网站快速排名优化,付款网站源码,做自己的卡盟网站#x1f648;作者简介#xff1a;练习时长两年半的Java up主 #x1f649;个人主页#xff1a;程序员老茶 #x1f64a; ps:点赞#x1f44d;是免费的#xff0c;却可以让写博客的作者开心好久好久#x1f60e; #x1f4da;系列专栏#xff1a;Java全栈#xff0c;… 作者简介练习时长两年半的Java up主 个人主页程序员老茶 ps:点赞是免费的却可以让写博客的作者开心好久好久 系列专栏Java全栈计算机系列火速更新中 格言种一棵树最好的时间是十年前其次是现在 动动小手点个关注不迷路感谢宝子们一键三连 目录 课程名Java内容/作用知识点/设计/实验/作业/练习学习Java设计模式Java设计模式1. 创建型模式1.1 简单工厂模式Simple Factory Pattern1.2 工厂方法模式Factory Method Pattern1.3 抽象工厂模式Abstract Factory Pattern 2. 结构型模式2.1 适配器模式Adapter Pattern2.2 装饰器模式Decorator Pattern 3. 行为型模式3.1 观察者模式Observer Pattern3.2 策略模式Strategy Pattern 课程名Java 内容/作用知识点/设计/实验/作业/练习 学习Java设计模式 Java设计模式 1. 创建型模式 1.1 简单工厂模式Simple Factory Pattern 简单工厂模式通过一个工厂类来创建对象根据不同的参数返回不同类的实例。 示例代码 public interface Shape {void draw(); }public class Circle implements Shape {Overridepublic void draw() {System.out.println(Drawing a circle);} }public class Rectangle implements Shape {Overridepublic void draw() {System.out.println(Drawing a rectangle);} }public class ShapeFactory {public static Shape createShape(String shapeType) {if (shapeType.equalsIgnoreCase(circle)) {return new Circle();} else if (shapeType.equalsIgnoreCase(rectangle)) {return new Rectangle();}return null;} }public class Main {public static void main(String[] args) {Shape circle ShapeFactory.createShape(circle);circle.draw();Shape rectangle ShapeFactory.createShape(rectangle);rectangle.draw();} }1.2 工厂方法模式Factory Method Pattern 工厂方法模式定义了一个创建对象的接口但由子类决定要实例化的类是哪一个。 示例代码 public interface Shape {void draw(); }public class Circle implements Shape {Overridepublic void draw() {System.out.println(Drawing a circle);} }public class Rectangle implements Shape {Overridepublic void draw() {System.out.println(Drawing a rectangle);} }public interface ShapeFactory {Shape createShape(); }public class CircleFactory implements ShapeFactory {Overridepublic Shape createShape() {return new Circle();} }public class RectangleFactory implements ShapeFactory {Overridepublic Shape createShape() {return new Rectangle();} }public class Main {public static void main(String[] args) {ShapeFactory circleFactory new CircleFactory();Shape circle circleFactory.createShape();circle.draw();ShapeFactory rectangleFactory new RectangleFactory();Shape rectangle rectangleFactory.createShape();rectangle.draw();} }1.3 抽象工厂模式Abstract Factory Pattern 抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口而无需指定它们具体的类。 示例代码 public interface Color {void fill(); }public class Red implements Color {Overridepublic void fill() {System.out.println(Filling with red color);} }public class Blue implements Color {Overridepublic void fill() {System.out.println(Filling with blue color);} }public interface Shape {void draw(); }public class Circle implements Shape {Overridepublic void draw() {System.out.println(Drawing a circle);} }public class Rectangle implements Shape {Overridepublic void draw() {System.out.println(Drawing a rectangle);} }public interface AbstractFactory {Color createColor();Shape createShape(); }public class RedCircleFactory implements AbstractFactory {Overridepublic Color createColor() {return new Red();}Overridepublic Shape createShape() {return new Circle();} }public class BlueRectangleFactory implements AbstractFactory {Overridepublic Color createColor() {return new Blue();}Overridepublic Shape createShape() {return new Rectangle();} }public class Main {public static void main(String[] args) {AbstractFactory redCircleFactory new RedCircleFactory();Color red redCircleFactory.createColor();red.fill();Shape circle redCircleFactory.createShape();circle.draw();AbstractFactory blueRectangleFactory new BlueRectangleFactory();Color blue blueRectangleFactory.createColor();blue.fill();Shape rectangle blueRectangleFactory.createShape();rectangle.draw();} }2. 结构型模式 2.1 适配器模式Adapter Pattern 适配器模式将一个类的接口转换为客户端所期望的另一个接口。它可以让原本不兼容的类合作无间。 示例代码 public interface MediaPlayer {void play(String audioType, String fileName); }public interface AdvancedMediaPlayer {void playVlc(String fileName);void playMp4(String fileName); }public class VlcPlayer implements AdvancedMediaPlayer {Overridepublic void playVlc(String fileName) {System.out.println(Playing vlc file: fileName);}Overridepublic void playMp4(String fileName) {// Do nothing} }public class Mp4Player implements AdvancedMediaPlayer {Overridepublic void playVlc(String fileName) {// Do nothing}Overridepublic void playMp4(String fileName) {System.out.println(Playing mp4 file: fileName);} }public class MediaAdapter implements MediaPlayer {private AdvancedMediaPlayer advancedMediaPlayer;public MediaAdapter(String audioType) {if (audioType.equalsIgnoreCase(vlc)) {advancedMediaPlayer new VlcPlayer();} else if (audioType.equalsIgnoreCase(mp4)) {advancedMediaPlayer new Mp4Player();}}Overridepublic void play(String audioType, String fileName) {if (audioType.equalsIgnoreCase(vlc)) {advancedMediaPlayer.playVlc(fileName);} else if (audioType.equalsIgnoreCase(mp4)) {advancedMediaPlayer.playMp4(fileName);}} }public class AudioPlayer implements MediaPlayer {private MediaAdapter mediaAdapter;Overridepublic void play(String audioType, String fileName) {// 播放 mp3 音乐文件的内置支持if (audioType.equalsIgnoreCase(mp3)) {System.out.println(Playing mp3 file: fileName);}// 使用 MediaAdapter 来播放其他文件格式的音乐文件else if (audioType.equalsIgnoreCase(vlc)|| audioType.equalsIgnoreCase(mp4)) {mediaAdapter new MediaAdapter(audioType);mediaAdapter.play(audioType, fileName);}else {System.out.println(Invalid media. audioType format not supported);}} }public class Main {public static void main(String[] args) {MediaPlayer audioPlayer new AudioPlayer();audioPlayer.play(mp3, song.mp3);audioPlayer.play(vlc, movie.vlc);audioPlayer.play(mp4, video.mp4);audioPlayer.play(avi, movie.avi);} }2.2 装饰器模式Decorator Pattern 装饰器模式动态地给一个对象添加一些额外的职责同时又不改变其结构。 示例代码 public interface Car {void assemble(); }public class BasicCar implements Car {Overridepublic void assemble() {System.out.println(Basic Car.);} }public abstract class CarDecorator implements Car {protected Car decoratedCar;public CarDecorator(Car decoratedCar){this.decoratedCar decoratedCar;}public void assemble(){decoratedCar.assemble();} }public class SportsCar extends CarDecorator {public SportsCar(Car decoratedCar) {super(decoratedCar);}Overridepublic void assemble(){super.assemble();System.out.println(Adding features of Sports Car.);} }public class LuxuryCar extends CarDecorator {public LuxuryCar(Car decoratedCar) {super(decoratedCar);}Overridepublic void assemble(){super.assemble();System.out.println(Adding features of Luxury Car.);} }public class Main {public static void main(String[] args) {Car basicCar new BasicCar();Car sportsCar new SportsCar(basicCar);sportsCar.assemble();Car luxurySportsCar new LuxuryCar(new SportsCar(basicCar));luxurySportsCar.assemble();} }3. 行为型模式 3.1 观察者模式Observer Pattern 观察者模式定义了对象之间的一对多依赖关系当一个对象状态发生改变时其相关依赖对象都会收到通知并自动更新。 示例代码 import java.util.ArrayList; import java.util.List;interface Observer {void update(String message); }class User implements Observer {private final String name;User(String name) {this.name name;}Overridepublic void update(String message) {System.out.println(name received message: message);} }interface Subject {void registerObserver(Observer observer);void removeObserver(Observer observer);void notifyObservers(String message); }class NewsAgency implements Subject {private final ListObserver observers;private String news;NewsAgency() {this.observers new ArrayList();}Overridepublic void registerObserver(Observer observer) {observers.add(observer);}Overridepublic void removeObserver(Observer observer) {observers.remove(observer);}Overridepublic void notifyObservers(String message) {for (Observer observer : observers) {observer.update(message);}}public void setNews(String news) {this.news news;notifyObservers(news);} }class Main {public static void main(String[] args) {NewsAgency newsAgency new NewsAgency();User user1 new User(User 1);User user2 new User(User 2);newsAgency.registerObserver(user1);newsAgency.registerObserver(user2);newsAgency.setNews(Breaking news!);newsAgency.removeObserver(user2);newsAgency.setNews(Important news!);} }3.2 策略模式Strategy Pattern 策略模式定义了一系列算法将每个算法封装起来使它们可以互相替换使得算法可以独立于使用它的客户端而变化。 示例代码 interface PaymentStrategy {void pay(double amount); }class CreditCardStrategy implements PaymentStrategy {private final String name;private final String cardNumber;private final String cvv;private final String dateOfExpiry;CreditCardStrategy(String name, String cardNumber, String cvv, String dateOfExpiry) {this.name name;this.cardNumber cardNumber;this.cvv cvv;this.dateOfExpiry dateOfExpiry;}Overridepublic void pay(double amount) {System.out.println(amount paid with credit/debit card);} }class PayPalStrategy implements PaymentStrategy {private final String emailId;private final String password;PayPalStrategy(String emailId, String password) {this.emailId emailId;this.password password;}Overridepublic void pay(double amount) {System.out.println(amount paid using PayPal.);} }class ShoppingCart {private final ListItem items;ShoppingCart() {this.items new ArrayList();}void addItem(Item item) {items.add(item);}double calculateTotal() {double total 0;for (Item item : items) {total item.getPrice();}return total;}void pay(PaymentStrategy paymentStrategy) {double amount calculateTotal();paymentStrategy.pay(amount);} }class Item {private final String name;private final double price;Item(String name, double price) {this.name name;this.price price;}double getPrice() {return price;} }class Main {public static void main(String[] args) {ShoppingCart cart new ShoppingCart();Item item1 new Item(Item 1, 20);Item item2 new Item(Item 2, 30);cart.addItem(item1);cart.addItem(item2);cart.pay(new CreditCardStrategy(John Doe, 1234567890123456, 123, 12/2025));cart.pay(new PayPalStrategy(john.doeexample.com, password));} }以上是一些常见的Java设计模式每种设计模式都有不同的应用场景和用途。使用这些设计模式可以提高代码的可维护性、可扩展性和重用性。 往期专栏Java全栈开发数据结构与算法计算机组成原理操作系统数据库系统物联网控制原理与技术
http://www.pierceye.com/news/492099/

相关文章:

  • 湖南对外建设集团网站成都著名网站
  • 手机网站制作的公司wordpress分类目录添加图片
  • 做彩票网站需要多少钱网络营销和传统营销的关系
  • 教育咨询网站模板谷歌外贸网站seo怎么做
  • 怎么制作网站主题郑州推出vip服务
  • 在国外做盗版电影网站吗安卓网站建站系统
  • 网站备案是在哪个部门织梦cms 获得网站流量次数
  • 公司网站放哪些内容ui培训班教程
  • 电子商务网站设计目的及要求百通互联网站建设
  • 网站做端口是什么问题微信最新版本官方版下载安装
  • 活字格能开发企业网站吗本地做网站
  • 建立一个小型网站多少钱微信公众号移动网站开发
  • 网站建设设计师招募建设方案模板范文
  • 做网站需要多少钱一年wordpress网站语言
  • 专门做家具的网站做网站建设的怎么赢利
  • 网站建设教程皆赞湖南岚鸿完成站长网站大全
  • 广州市网站建设 合优系统学做网站
  • 网站建设客户相关问题wordpress主题怎么选
  • 网站数据迁移教程网络营销项目策划书范文
  • 网站 只收录首页网站建设手机端页面模板
  • 光明区建设局网站云南省工程建设造价协会网站
  • 网站建设视频教程 百度云网站制作背景图片
  • 网站域名起名网站建设企业排行榜
  • 高端品牌网站定制设计wordpress多张页面左右滑动
  • git网站开发网名logo设计制作
  • seo在线网站诊断推推蛙seo兼职怎么收费
  • 网站数据分析视频深圳市昊客网络科技有限公司
  • 外贸网站做开关行业的哪个好网站互动优化
  • 西班牙语网站设计哪家好开发一个跑腿app需要多少钱
  • 怎么才能提高网站点击量 免费网站原型图软件