Android 设计模式实战笔记 享元模式

    xiaoxiao2021-12-03  39

    定义:

    享元模式是对象池的一种实现,用来尽可能减少内存使用量,

    使用共享对象存在大量的相似对象

    使用使用场景:

    1.系统中存在大量的相似对象

    2.细微粒的对象都具备较接近的外部状态,而且内部状态与环境无关,也就是说对象没有特定状态

    3.需要缓冲池的场景

    实战

    创建一个接口展示车票新的的函数

    public interface Ticket { public void showTicket(String bunk); } 写一个具体类

    public class TrainTicket implements Ticket { public String from; public String to; public String bunk; public int price; public TrainTicket(String from, String to) { this.from = from; this.to = to; } @Override public void showTicket(String bunk) { price = new Random().nextInt(300); } }享元模式工厂

    public class TrainTicketFactory { static Map<String, Ticket> sTicketMap = new ConcurrentHashMap<>(); public static Ticket getTicket(String from, String to) { String key = from + "-" + to; if (sTicketMap.containsKey(key)) { System.out.print("使用缓存"); return sTicketMap.get(key); } else { System.out.print("创建对象"); Ticket ticket = new TrainTicket(from, to); sTicketMap.put(key, ticket); return ticket; } } }总结:

    它可以大大减少应用程序创建的对象,降低程序内存的占用,增强程序的性能,但它同事提高了系统的复杂性,需要分离出外部状态和内部状态,而且外包状态具有固话特性,不应该随内部状态改变而改变,否则导致系统的逻辑混乱。

    优点:

    1.大幅度的降低内存中对象的数量

    缺点:

    1.使系统更加复杂

    转载请注明原文地址: https://ju.6miu.com/read-679907.html

    最新回复(0)