私人pk赛车网站怎么做有哪些做企业网站的
- 作者: 五速梦信息网
- 时间: 2026年04月20日 08:27
当前位置: 首页 > news >正文
私人pk赛车网站怎么做,有哪些做企业网站的,湖畔魔豆基金会公益网站开发,做图片视频的网站有哪些问题一#xff1a;设计模式分类 经典的23种设计模式是由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides#xff08;合称“Gang of Four”#xff09;在他们的书《设计模式#xff1a;可复用面向对象软件的基础》中定义的。以下是这些设计模式的分类和简要介绍。 1.… 一设计模式分类 经典的23种设计模式是由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides合称“Gang of Four”在他们的书《设计模式可复用面向对象软件的基础》中定义的。以下是这些设计模式的分类和简要介绍。 1.1创建型模式 单例模式 (Singleton)确保一个类只有一个实例并提供一个全局访问点。抽象工厂模式 (Abstract Factory)提供一个接口用于创建相关或依赖对象的家族而不需要指定具体类。工厂方法模式 (Factory Method)定义一个创建对象的接口但由子类决定实例化哪个类。生成器模式 (Builder)将一个复杂对象的构建过程与其表示分离使得同样的构建过程可以创建不同的表示。原型模式 (Prototype)使用原型实例指定创建对象的种类并通过复制这些原型创建新的对象。 1.2结构型模式 适配器模式 (Adapter)将一个类的接口转换成客户希望的另一个接口适配器模式使得原本由于接口不兼容而不能一起工作的类可以一起工作。桥接模式 (Bridge)将抽象部分与它的实现部分分离使它们都可以独立地变化。组合模式 (Composite)将对象组合成树形结构以表示“部分-整体”的层次结构使得客户端对单个对象和组合对象的使用具有一致性。装饰模式 (Decorator)动态地给一个对象添加一些额外的职责就增加功能来说装饰模式比生成子类更为灵活。外观模式 (Facade)为子系统中的一组接口提供一个一致的界面外观模式定义了一个高层接口这一接口使得这一子系统更加容易使用。享元模式 (Flyweight)运用共享技术有效地支持大量细粒度的对象。代理模式 (Proxy)为其他对象提供一种代理以控制对这个对象的访问。 1.3行为型模式 责任链模式 (Chain of Responsibility)为请求创建一个接收者对象的链这种模式使得多个对象都有机会处理请求避免了请求的发送者和接收者之间的耦合。命令模式 (Command)将一个请求封装为一个对象从而使您可以用不同的请求对客户进行参数化对请求排队或记录请求日志以及支持可撤销的操作。解释器模式 (Interpreter)给定一个语言定义它的文法的一种表示并定义一个解释器该解释器使用该表示来解释语言中的句子。迭代器模式 (Iterator)提供一种方法顺序访问一个聚合对象中的各个元素而又不需暴露该对象的内部表示。中介者模式 (Mediator)用一个中介对象来封装一系列的对象交互中介者使各对象不需要显式地相互引用从而使其耦合松散而且可以独立地改变它们之间的交互。备忘录模式 (Memento)在不破坏封装性的前提下捕获一个对象的内部状态并在该对象之外保存这个状态以便以后恢复对象为先前的状态。观察者模式 (Observer)定义对象间的一种一对多的依赖关系使得每当一个对象改变状态则所有依赖于它的对象都会得到通知并被自动更新。状态模式 (State)允许对象在内部状态改变时改变它的行为对象看起来好像修改了它的类。策略模式 (Strategy)定义一系列的算法把它们一个个封装起来并且使它们可以互换本模式使得算法可独立于使用它的客户而变化。模板方法模式 (Template Method)定义一个操作中的算法的骨架而将一些步骤延迟到子类中使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。访问者模式 (Visitor)表示一个作用于某对象结构中的各元素的操作它使您可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 这些设计模式在Android开发中也有很多应用可以帮助开发者设计更好的架构和解决常见问题。尽管有些模式在不同环境中有特定的实现方式但核心思想依然适用。 二Android中的使用 在 Android 开发中虽然23种经典设计模式都有可能用到但一些模式在实际开发中更为常见和实用。以下是Android开发中常用的设计模式及其应用场景
- 单例模式 (Singleton) 应用场景 全局唯一的实例如网络管理器、数据库管理器、SharedPreferences管理器等。 示例 public class NetworkManager {private static NetworkManager instance;private NetworkManager() {}public static synchronized NetworkManager getInstance() {if (instance null) {instance new NetworkManager();}return instance;} }2. 工厂方法模式 (Factory Method) 应用场景 根据条件动态创建不同的对象如Fragment的实例化。 示例 public abstract class Fragment {public static Fragment newInstance(String type) {if (type.equals(home)) {return new HomeFragment();} else if (type.equals(settings)) {return new SettingsFragment();} else {return null;}} }3. 观察者模式 (Observer) 应用场景 事件总线LiveDataViewModel和UI组件之间的数据绑定。 示例 public class UserViewModel extends ViewModel {private MutableLiveDataUser user new MutableLiveData();public LiveDataUser getUser() {return user;}public void setUser(User user) {this.user.setValue(user);} }4. 模板方法模式 (Template Method) 应用场景 定义Activity或Fragment的生命周期方法。 示例 public abstract class BaseActivity extends AppCompatActivity {Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(getLayoutId());initialize();}protected abstract int getLayoutId();protected abstract void initialize(); }5. 适配器模式 (Adapter) 应用场景 RecyclerView适配器、ListView适配器。 示例 public class MyAdapter extends RecyclerView.AdapterMyAdapter.ViewHolder {private ListString data;public MyAdapter(ListString data) {this.data data;}Overridepublic ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {View view LayoutInflater.from(parent.getContext()).inflate(R.layout.item_view, parent, false);return new ViewHolder(view);}Overridepublic void onBindViewHolder(ViewHolder holder, int position) {holder.textView.setText(data.get(position));}Overridepublic int getItemCount() {return data.size();}public static class ViewHolder extends RecyclerView.ViewHolder {TextView textView;public ViewHolder(View itemView) {super(itemView);textView itemView.findViewById(R.id.textView);}} }6. 代理模式 (Proxy) 应用场景 Retrofit的动态代理用于创建API接口实例。 示例 public interface ApiService {GET(users/{user})CallUser getUser(Path(user) String user); }Retrofit retrofit new Retrofit.Builder().baseUrl(https://api.github.com/).addConverterFactory(GsonConverterFactory.create()).build();ApiService service retrofit.create(ApiService.class);7. 责任链模式 (Chain of Responsibility) 应用场景 事件分发机制如触摸事件的传递。 示例 Override public boolean dispatchTouchEvent(MotionEvent ev) {if (onInterceptTouchEvent(ev)) {return onTouchEvent(ev);}return super.dispatchTouchEvent(ev); }8. 享元模式 (Flyweight) 应用场景 优化内存使用如复用View对象。 示例 Override public View getView(int position, View convertView, ViewGroup parent) {if (convertView null) {convertView LayoutInflater.from(context).inflate(R.layout.item_view, parent, false);}// Bind data to the viewreturn convertView; }9. 装饰模式 (Decorator) 应用场景 动态添加功能如View的装饰器。 示例 public class BorderDecorator extends View {private View view;public BorderDecorator(View view) {super(view.getContext());this.view view;}Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);// Draw borderview.draw(canvas);} }10. 迭代器模式 (Iterator) 应用场景 处理集合类如遍历数据列表。 示例 ListString list new ArrayList(); for (String item : list) {// Process item }这些设计模式在Android开发中常见且实用它们可以帮助我们开发者创建更结构化、可维护和扩展性强的应用程序。
- 上一篇: 司法局网站开发方案福州外贸建站
- 下一篇: 私人定制哪个网站做的比较好上饶专业企业网站建设
相关文章
-
司法局网站开发方案福州外贸建站
司法局网站开发方案福州外贸建站
- 技术栈
- 2026年04月20日
-
朔州网站建设费用东莞网上商城网站建设
朔州网站建设费用东莞网上商城网站建设
- 技术栈
- 2026年04月20日
-
朔州企业网站建设公司线下推广都有什么方式
朔州企业网站建设公司线下推广都有什么方式
- 技术栈
- 2026年04月20日
-
私人定制哪个网站做的比较好上饶专业企业网站建设
私人定制哪个网站做的比较好上饶专业企业网站建设
- 技术栈
- 2026年04月20日
-
私人路由器做网站如何看网站的流量
私人路由器做网站如何看网站的流量
- 技术栈
- 2026年04月20日
-
私人网站服务器免费广州清洁公司
私人网站服务器免费广州清洁公司
- 技术栈
- 2026年04月20日
